我想修改程序,用一条直线连接一系列的点,组成一个字母的一个笔划,这样就可以画出单词,但我真的不知道如何做到这一点,所以我想一些参考。我试图画他们使用drawLine,但它不是我真正想要的。
的数据
这是我的代码:
package tool;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.util.Vector;
import javax.swing.JFrame;
import javax.swing.JPanel;
class Point {
int x, y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
}
public class MyPaintApp extends JFrame {
int x, y;
Vector<Point> list = new Vector<>();
class MyPanel extends JPanel {
public MyPanel() {
addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent event) {
x = event.getX();
y = event.getY();
list.add(new Point(x, y));
repaint();
}
});
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
for (Point p : list)
g.fillOval(p.x, p.y, 4, 4);
}
}
public MyPaintApp() {
setSize(600, 450);
setLocation(400, 0);
setTitle("My Paint");
add(new MyPanel());
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
个字符
1条答案
按热度按时间t3irkdon1#
字符串
在这种情况下,我们甚至没有创建任何你所做的点。我们所做的就是使用
MouseEvent.getPoint()
从事件中获取点,然后将其添加到我们的Vector
。我还将您的MouseMotionAdapter
更改为普通的MouseAdapter
。这样做给了我们mouseMoved
,我只是用来重置Vector
并启动一个新的。必须运行,这样我回来后就能回答问题了