gpt4 book ai didi

netbeans - 在 JavaFX 中创建多个阶段

转载 作者:行者123 更新时间:2023-12-03 14:40:25 24 4
gpt4 key购买 nike

我正在尝试使用不同的类创建多个阶段,由此我可以通过单击按钮打开另一个窗口,但该窗口应该在不同的类中。

我曾经在 Java 中执行此操作,我将在按钮操作中创建该类的对象,并使用该对象的名称将新 JFrame 设置为可见,但对主 JFrame 是模态的。我在 JavaFX 中尝试了同样的方法,但没有成功。

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

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

任何帮助将不胜感激。

最佳答案

因此,您希望每个类都是 Stage 的子类。我会给你两个阶段以及如何相互交流。

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();
}

关于netbeans - 在 JavaFX 中创建多个阶段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21073941/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com