Run the code:
import javafx.application.Application;
import javafx.event.Event;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class JavaApplication4 extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(final Stage stage) {
Button b = new Button("Change coordinates");
b.setOnAction(new EventHandler(){
@Override
public void handle(Event t) {
Stage newStage = new Stage();
newStage.setWidth(100);//**
newStage.setHeight(100);//**
newStage.setX(stage.getX() + 50);
newStage.setY(stage.getY() + 50);
start(newStage);
}
});
VBox vb= new VBox();
vb.getChildren().add(b);
Scene scene = new Scene(vb);
stage.setScene(scene);
stage.show();
}
}
Run the code, click button and look at how new stages appear at the same position. Remove lines marked with //**, and code will continue working as expexted.
import javafx.application.Application;
import javafx.event.Event;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class JavaApplication4 extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(final Stage stage) {
Button b = new Button("Change coordinates");
b.setOnAction(new EventHandler(){
@Override
public void handle(Event t) {
Stage newStage = new Stage();
newStage.setWidth(100);//**
newStage.setHeight(100);//**
newStage.setX(stage.getX() + 50);
newStage.setY(stage.getY() + 50);
start(newStage);
}
});
VBox vb= new VBox();
vb.getChildren().add(b);
Scene scene = new Scene(vb);
stage.setScene(scene);
stage.show();
}
}
Run the code, click button and look at how new stages appear at the same position. Remove lines marked with //**, and code will continue working as expexted.