Made a window without a title:

@Override public void start(Stage stage) throws Exception { String fxmlFile = "/fxml/MainDialog.fxml"; FXMLLoader loader = new FXMLLoader(); Parent root = (Parent) loader.load(getClass().getResourceAsStream(fxmlFile)); stage.setScene(new Scene(root)); **stage.initStyle(StageStyle.UNDECORATED);** stage.setResizable(false); stage.show(); } 

You need to make it possible to drag the window while holding the paint on any area of ​​the window. How to ask it? Most likely there is a property, but I can not find it.

    2 answers 2

    Just change your setOnMousePressed method to:

     bp.setOnMousePressed(new EventHandler<MouseEvent>() { @Override public void handle(MouseEvent event) { xOffset = primaryStage.getX() - event.getScreenX(); yOffset = primaryStage.getY() - event.getScreenY(); } }); 

    and the setOnMouseDragged method on:

     bp.setOnMouseDragged(new EventHandler<MouseEvent>() { @Override public void handle(MouseEvent event) { primaryStage.setX(event.getScreenX() + xOffset); primaryStage.setY(event.getScreenY() + yOffset); } }); 

    Source of

      @Denis example suitable, used it more compactly without BorderPane. Can someone come in handy

       private double xOffset; private double yOffset; @Override public void start(final Stage stage) throws Exception { String fxmlFile = "/fxml/MainDialog.fxml"; FXMLLoader loader = new FXMLLoader(); Parent root = (Parent) loader.load(getClass().getResourceAsStream(fxmlFile)); Scene scene = new Scene(root); scene.setOnMousePressed(new EventHandler<MouseEvent>() { @Override public void handle(MouseEvent event) { xOffset = stage.getX() - event.getScreenX(); yOffset = stage.getY() - event.getScreenY(); } }); scene.setOnMouseDragged(new EventHandler<MouseEvent>() { @Override public void handle(MouseEvent event) { stage.setX(event.getScreenX() + xOffset); stage.setY(event.getScreenY() + yOffset); } }); stage.setScene(scene); stage.initStyle(StageStyle.UNDECORATED); stage.setResizable(false); stage.show(); }