Java 使用sleep命令绘制线
我的目标是得到这样的结果: 灰色的线是鼠标的路径,黑色的线是你在屏幕上看到的线,但是我有两个问题Java 使用sleep命令绘制线,java,graphics,drawing,line,Java,Graphics,Drawing,Line,我的目标是得到这样的结果: 灰色的线是鼠标的路径,黑色的线是你在屏幕上看到的线,但是我有两个问题 新行之前的行消失(我希望它保持不变) 线绘制是滞后的,仅在鼠标静止时绘制 公共类Press extends小程序实现MouseMotionListener{ public int count; public int x1, y1, x2, y2; public void init(){ this.addMouseMotionListener(this); } public Press(
public int count;
public int x1, y1, x2, y2;
public void init(){
this.addMouseMotionListener(this);
}
public Press(){
count = 0;
}
public void paint (Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.draw(new Line2D.Double(x1, y1, x2, y2));
repaint();
}
public void clickup(){
count++;
}
public void mouseDragged(MouseEvent e){
x1 = x2;
y1 = y2;
x2 = e.getX();
y2 = e.getY();
System.out.println("x: " + x2 + " y: " + y2 + " Count: " + count);
clickup();
try {
Thread.sleep(100);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
}
public void mouseMoved(MouseEvent e) {
}
public static void main(String[] args) {
Press mouse = new Press();
}
}实现这一点的方法是使用(缓冲)图像,在paint中绘制图像,并在鼠标事件处理程序中绘制图像 1-不要在事件调度线程内使用
线程。休眠;2-将要绘制的点添加到某种类型的列表
,每次调用绘制
时,重新绘制列表中的所有点