用JavaFX画一条直线

时间:2018-08-04 02:09:07

标签: java javafx drawing

我正在尝试使用JavaFX实现类似于Paint的应用程序。我试图先在a(x0,y0)b(x1,y1)之间画一条线,但是在释放鼠标左键后,该线才显示在画布上。

当我尝试使用MouseEvent._MOUSE_DRAGGED解决该问题时,只要我按住鼠标左键,就会画很多线。

我正在尝试使其更自然,例如Paint,可以在屏幕上拖动线条,但是只有在松开鼠标左键时才在画布上绘制线条。

Canvas c;
GraphicsContext gc;
GeometricObject go;
ColorPicker colorPicker;
Button drawLine, drawRectangle;
TextField defineWidth;
private boolean isDrawLine, isDrawRectangle;
double initX = 0, initY = 0, finalX = 0, finalY = 0, width;

private void actionHandler(ActionEvent event) {
    if (event.getSource().equals(drawLine)) {
        isDrawLine = true;
    }
}

private void pressHandler(MouseEvent me) {
    initX = me.getX();
    initY = me.getY();
}

private void releaseHandler(MouseEvent me) {
    gc.strokeLine(initX, initY, finalX, finalY);
}

private void moveHandler(MouseEvent me) {
    finalX = me.getX();
    finalY = me.getY();
    gc.setFill(colorPicker.getValue());
    gc.setLineWidth(1);

}

我考虑过将鼠标拖动时将绘制的线存储在ArrayList中,然后删除所有这些线,但最后一个在释放鼠标左键时绘制的线...

0 个答案:

没有答案