【发布时间】:2012-08-09 17:04:31
【问题描述】:
我需要想出一种方法,让三个大字母看起来像是在打字/书写。
我可以用paintComponent();创建字母
我需要有关如何实现此目的的想法/示例?
这是我已经做过的。
public class LetterWriter extends JPanel {
private String[] alphabets;
private Font font;
public LetterWriter() {
createComponents();
layoutComponents();
}
public void createComponents() {
alphabets = new String[]{"A","B","C"};
String[] fonts = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
font = new Font(fonts[7],1,500);
}
public void layoutComponents() {
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g.create();
g2d.setFont(font);
g2d.drawString(alphabets[0],getWidth()/7,getHeight()-50);
}
public static void main(String[] args) {
LetterWriter demo = new LetterWriter();
JFrame frame = new JFrame();
Container cp = frame.getContentPane();
cp.add(demo);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 500);
frame.setLocation(500, 500);
frame.setVisible(true);
}
}
【问题讨论】:
-
你是说,被打字?还是关于手写?
-
另外,试着至少解释一下,你已经尝试过什么,为什么没有奏效,或者为什么不是想要的结果。只是来这里获取想法/示例而不提供您的想法可能会让一些人认为您很懒惰/不感兴趣,那么即使您不能/不会做的最小的事情,为什么其他人还要去做呢?不想在这里粗鲁或其他任何事情,只是想帮助您获得更好的答案,同时提供好的问题。
-
试着解释一下你的想法,为什么没有奏效(找不到正确的方法,不知道如何在java中绘画等),具体问题出在哪里你正面临着。
-
我已经更新了我的问题,请查看?
-
+1 表示你的努力 :-),虽然在这个过程中你的角色将再次出现,你应该瞄准的地方是只画它的一部分,然后是另一个部分,因此您必须同时使用drawLine(...)、drawArc(...) 等多种方法来完成此操作。
标签: java swing fonts paintcomponent alphabetic