JavaFX 通过鼠标绘制形状

JavaFX Drawing Shapes via Mouse

有什么简单的方法可以通过移动鼠标来绘制一些形状吗?

更具体地说,我正在做一个屏幕截图程序,所以我想select以某种方式显示该区域。 我看到它就像在A点上按住鼠标键并实时移动到B点,在A点和当前点之间绘制矩形。

抱歉语言不好,英语不是我的母语。

在这种情况下,我使用了一个名为 scene 的 Scene 对象。这个或类似的东西应该可以做你想要的,也许你必须在 dragBox.setTranslatedragBox.setWidth / .setHeight 之间切换,在你向上或向左而不是向下拖动的情况下并且正确。

Rectangle dragBox = new Rectangle(0, 0, 0, 0);
dragBox.setVisible(false);
scene.addEventFilter(MouseEvent.ANY, new EventHandler<MouseEvent>() {
    @Override
    public void handle(MouseEvent mouseEvent) {
        if(mouseEvent.getEventType() == MouseEvent.MOUSE_CLICKED){
            dragBox.setVisible(true);
            dragBox.setTranslateX(mouseEvent.getX());
            dragBox.setTranslateY(mouseEvent.getY());
        }
        if(mouseEvent.getEventType() == MouseEvent.MOUSE_MOVED && dragBox.isVisible()){
            dragBox.setWidth(mouseEvent.getX() - dragBox.getTranslateX());
            dragBox.setHeight(mouseEvent.getY() - dragBox.getTranslateY());
        }
        if(mouseEvent.getEventType() == MouseEvent.MOUSE_RELEASED)
            dragBox.setVisible(false);
    }
});

您还必须确保将 dragBox 添加到场景中显示的 Pane 中,否则 dragBox 将根本不可见。