Javafx 2 能够移动一个;“未装饰”;屏幕上的应用程序窗口

Javafx 2 能够移动一个;“未装饰”;屏幕上的应用程序窗口,javafx-2,mouseevent,draggable,fxml,scenebuilder,Javafx 2,Mouseevent,Draggable,Fxml,Scenebuilder,我正在使用JFX和JavaFX场景生成器构建一个预订系统应用程序。 我认为,为了让它看起来更好,我可以删除边框,或者按照代码的要求,将其设置为“未装饰”。现在,我想通过单击场景并拖动它,使其能够在屏幕上拖动。我尝试了很多方法,但都没有奏效。 我现在需要一些帮助 先谢谢你 我正在使用场景生成器,这是我发现的。 使用背景窗格移动未装饰的窗口 @FXML private Pane pane; @Override public void initialize(URL url, ResourceBund

我正在使用JFX和JavaFX场景生成器构建一个预订系统应用程序。 我认为,为了让它看起来更好,我可以删除边框,或者按照代码的要求,将其设置为“未装饰”。现在,我想通过单击场景并拖动它,使其能够在屏幕上拖动。我尝试了很多方法,但都没有奏效。 我现在需要一些帮助


先谢谢你

我正在使用场景生成器,这是我发现的。
使用背景窗格移动未装饰的窗口

@FXML
private Pane pane;

@Override
public void initialize(URL url, ResourceBundle rb) {
    pane.setOnMousePressed(new EventHandler<MouseEvent>() {

        @Override
        public void handle(MouseEvent t) {
            //System.out.println("Pressed");
            //System.out.println("Mouse : " + t.getX() + " | " + t.getY());
            mouse.setX(t.getX());
            mouse.setY(t.getY());
        }
    });
    pane.setOnMouseDragged(new EventHandler<MouseEvent>() {

        @Override
        public void handle(MouseEvent t) {
            //System.out.println("Dragged");
            //System.out.println("Mouse : " + t.getX() + " | " + t.getY());
            pane.getScene().getWindow().setX( t.getScreenX() - mouse.getX() - 14);
            pane.getScene().getWindow().setY( t.getScreenY() - mouse.getY() - 14);
        }
    });
}   

我正在使用场景生成器,这是我发现的。
使用背景窗格移动未装饰的窗口

@FXML
private Pane pane;

@Override
public void initialize(URL url, ResourceBundle rb) {
    pane.setOnMousePressed(new EventHandler<MouseEvent>() {

        @Override
        public void handle(MouseEvent t) {
            //System.out.println("Pressed");
            //System.out.println("Mouse : " + t.getX() + " | " + t.getY());
            mouse.setX(t.getX());
            mouse.setY(t.getY());
        }
    });
    pane.setOnMouseDragged(new EventHandler<MouseEvent>() {

        @Override
        public void handle(MouseEvent t) {
            //System.out.println("Dragged");
            //System.out.println("Mouse : " + t.getX() + " | " + t.getY());
            pane.getScene().getWindow().setX( t.getScreenX() - mouse.getX() - 14);
            pane.getScene().getWindow().setY( t.getScreenY() - mouse.getY() - 14);
        }
    });
}   

试着阅读Pavel的答案,并思考,如果你能实现它,当节点(场景的根布局)和DnD手势使用场景的setX,Y时,你的问题是什么?也许是的。试着读一下Pavel的答案,然后想一想,如果你能实现的话,当节点(场景的根布局)和DnD手势使用场景的setX,Y时,你的问题是什么?也许是的。可能是复制品