如何用鼠标在JavaFX中画一条线?

时间:2019-09-18 16:36:15

标签: javafx line draw paint

我正在研究一个绘画程序,其中单击一个按钮以切换绘制线条的按钮。我的代码没有执行我想要的操作,而是在我尝试绘制多条线时绘制一个奇怪的扇形。我希望它能够用鼠标绘制多条直线。


        canvas.addEventHandler(MouseEvent.MOUSE_PRESSED, new EventHandler<MouseEvent>() {
            @Override
            public void handle(MouseEvent event) {
                initialTouch = new Pair<>(event.getX(), event.getY());
            }
        });

        canvas.addEventHandler(MouseEvent.MOUSE_DRAGGED, new EventHandler<MouseEvent>() {
            @Override
            public void handle(MouseEvent event) {
                gc.strokeLine(initialTouch.getKey(), initialTouch.getValue(), event.getX(), event.getY());
            }
        });

        canvas.addEventHandler(MouseEvent.MOUSE_RELEASED, new EventHandler<MouseEvent>() {
            @Override
            public void handle(MouseEvent event) {

            }
        });

    }```

That method is called when a button is pushed to draw the line. I am expecting multiple lines, but I stead get a fan shape.

1 个答案:

答案 0 :(得分:0)

您要做的是:

您创建起点。 然后为每个DRAG移动创建一个从开始位置到新位置的OWN行。因此,您创建了很多类似形状的线。

您想要的是

创建一个起点,然后绘制到终点。 因此,释放鼠标时,您只应在图形上下文中画一条线。

将“拖拉”中的操作移至“已发布”部分,即可完成工作。

当您需要“预览”时,应使用线对象并将其添加到视图中,然后释放鼠标时,应将其删除。