public ResizeListener(final Stage stage, final BorderPane menu) { this.stage = stage; this.menu = menu; menu.setOnMouseDragged( new EventHandler<MouseEvent>() { @Override public void handle(final MouseEvent mouseEvent) { if (!ResizeListener.this.resizing) { stage.setX(mouseEvent.getScreenX() + ResizeListener.this.dragDeltax); stage.setY(mouseEvent.getScreenY() + ResizeListener.this.dragDeltay); } } }); menu.setOnMousePressed( new EventHandler<MouseEvent>() { @Override public void handle(final MouseEvent mouseEvent) { // record a delta distance for the drag and drop operation. ResizeListener.this.resizing = false; ResizeListener.this.dragDeltax = stage.getX() - mouseEvent.getScreenX(); ResizeListener.this.dragDeltay = stage.getY() - mouseEvent.getScreenY(); } }); }