برای جابجایی Stage باید از دستور زیر استفاده کنیم: این سورس کامل قسمت جا بجایی Stage که برای برنامه خودمه
public class Main extends Application {
private static class Move {double x, y; }
Move movedrag = new Move();
public void start(Stage primaryStage) throws Exception{
FXMLLoader loader = new FXMLLoader(getClass().getResource("View/Login.fxml"));
AnchorPane shadowPane = loader.load();
Stage stage = new Stage();
Scene scene = new Scene(shadowPane);
stage.setScene(scene);
scene.getStylesheets().add(getClass().getResource("css/Style.css").toExternalForm());
shadowPane.setStyle("-fx-background-color: transparent;");
scene.setFill(Color.TRANSPARENT);
stage.initStyle(StageStyle.TRANSPARENT);
stage.show();
shadowPane.setOnMousePressed(new EventHandler<MouseEvent>() {
public void handle(MouseEvent event) {
movedrag.x = stage.getX() - event.getScreenX();
movedrag.y = stage.getY() - event.getScreenY();
shadowPane.setCursor(Cursor.HAND);
}
});
shadowPane.setOnMouseDragged(new EventHandler<MouseEvent>() {
public void handle(MouseEvent event) {
stage.setX(event.getScreenX() + movedrag.x);
stage.setY(event.getScreenY() + movedrag.y);
shadowPane.setCursor(Cursor.HAND);
}
});
}
public static void main(String[] args) {launch(args);}
}
اگر دور Stage بخواهید حاشیه بدید باید بعد از دستور :
AnchorPane shadowPane = loader.load();
DropShadow ds = new DropShadow();
ds.setSpread(1.5);
ds.setOffsetY(1.0);
ds.setOffsetX(1.0);
ds.setColor(Color.rgb(62, 80, 81));
shadowPane.setEffect(ds);