【问题标题】:How to draw a line in JavaFX with the mouse?如何用鼠标在JavaFX中画一条线?
【发布时间】:2019-09-18 16:36:15
【问题描述】:

我正在开发一个绘制程序,在该程序中单击一个按钮来切换绘制线条的按钮。我的代码没有做我想做的事,而是在我尝试绘制多条线时绘制一个奇怪的扇形。我希望它能够用鼠标绘制多条直线。


        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.

【问题讨论】:

    标签: javafx line draw paint


    【解决方案1】:

    你所做的是:

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

    你想要的是

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

    只需将您在“拖动”中所做的事情移至“已发布”部分,它就可以工作了。

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

    【讨论】:

      猜你喜欢
      • 2017-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-11
      • 1970-01-01
      • 1970-01-01
      • 2015-11-13
      • 1970-01-01
      相关资源
      最近更新 更多