netbeans – 在JavaFX中创建多个阶段

我正在尝试使用不同的类创建多个阶段,我可以通过单击按钮来启动另一个窗口,但是此窗口应该在不同的类中.

我曾经在Java中这样做,我将在button动作中创建类的对象,并使用对象的名称来设置新的JFrame可见,但是模态到主JFrame.我在JavaFX中尝试过相同但它无法正常工作.

我有两个不同的类,两个都处于不同的阶段,但我不能使用一个阶段来显示其他阶段.我只知道使用一个类,我将在动作处理程序方法中创建另一个阶段,但这会使代码非常长且太复杂.

附:我想要完成的不是同一个窗口中的多个屏幕.但不同的窗口(阶段),我不喜欢使用FXML文件,而是使用netbeans的java文件.

任何帮助将不胜感激.

最佳答案 所以你希望每个类都成为一个舞台的子类.我会给你两个阶段,以及如何互相交流.

public class FirstStage extends Stage{
Button openOther = new Button("Open other Stage");
HBox x = new HBox();

FirstStage(){
    x.getChildren().add(openOther);
    this.setScene(new Scene(x, 300, 300));
    this.show();

    openOther.setOnAction(new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent t) {
            new SecondStage();
        }//end action
    });
    }
}

对于第二阶段,

public class SecondStage extends Stage {
Label x = new Label("Second stage");
VBox y = new VBox();

SecondStage(){
    y.getChildren().add(x);
    this.setScene(new Scene(y, 300, 300));
    this.show();
   }    
}

并从主要第一阶段打电话:

@Override
public void start(Stage primaryStage){
    new FirstClass();
}
点赞