Java应用程序:mouseDragged事件通常不够执行

时间:2011-07-31 00:57:51

标签: java events drag

有没有办法让mouseDragged Event更频繁地调用(在我的情况下,绘制一个颜色?我需要它用于平滑绘图,因为现在,如果你移动太快,它不会画出我所有的路径此外,我有一个2D数组存储像素的颜色,所以如果我试图通过另一种方式解决问题也是有问题的,这就是为什么我认为增加mouseDragged Frequency将是最好的事情

谢谢

2 个答案:

答案 0 :(得分:1)

如果想要平滑绘图,则可能需要自己插入数据。如果你得到一个事件在(3,3)和另一个在(10,10),你可以计算两者之间的斜率,并迭代鼠标必须被拖动的逻辑点从(3,3)到(10,10)

我不知道一种强制mouseDragged更快更新的方法,例如,如果系统处于高负载状态,或者有人使用触摸屏,那么无论如何都可能会出现巨大的跳跃。

答案 1 :(得分:0)

如果要将椭圆绘制为彩色线条,请更改为线条:

ArrayList<> colors;

mousepressed(Event e) {
    startPoint = e.getPoint();
}

mousedragged(Event e) {
    colors.add(new Color(startPoint, e.getPoint);
    startPoint = e.getPoint();
}

class Color() {

    Color(Point start, Point end) {
        // ...
    }

    paint(Graphics g) {
        g.drawLine(start, end);
    }
}