我正在使用Javafx制作一个基本的绘图应用程序。我想知道是否有一些方法可以增加画布上线条的绘制速度。
public class MouseListener implements EventHandler<MouseEvent>{
@Override
public void handle(MouseEvent event) {
if(event.getSource() == canvas){
canvas.getParent().setCursor(Cursor.CROSSHAIR);
}
if(event.getEventType() == MouseEvent.MOUSE_PRESSED){
x1 = event.getX();
y1 = event.getY();
}else if(event.getEventType() == MouseEvent.MOUSE_MOVED){
pGraphics.reset();
x2 = event.getX();
y2 = event.getY();
mouseClick = 0;
pGraphics.drawLine(x1, y1, x2, y2);
}
}
public void drawLine(double x1, double y1, double x2, double y2){
gc.strokeLine(x1, y1, x2, y2);
}
public void reset()
{
gc.clearRect(0,0, gc.getCanvas().getWidth(), gc.getCanvas().getHeight());
}
正如您所看到的,这个绘图过程非常简单,使用MouseListener来检测线条开始的位置(x1, y1),并且同样适用于设置线条结束的位置(x2, y2)。正如您所看到的,我在绘制后清除了线条,这是我的意图,因为这个函数应该“展示”线条应该走的方向,例如像Microsoft Paint中使用的线条功能。然而,所有这些问题都在于,线条“滞后”于光标,当光标以正确的速度移动时,情况会更加明显。所以问题是:这是否与我的绘制函数、画布绘制函数、MouseListener的刷新率或其他完全不同的东西有关,还是全部都有关系?非常感谢对此提出建议。