我是JavaFX的新手,我正在尝试了解构建应用程序的最佳方法。我的应用程序开始显示注册表/登录表单,在您执行任一操作后,它会消失并被应用程序的实际UI替换。
这应该是两个场景还是应该是同一个场景中的两个窗格(或类似的东西)?
答案 0 :(得分:0)
使用单个Stage
(窗口)并在2 Scene
之间切换或使用2个窗口在它们之间切换完全取决于您。以下是有关如何使用1 Stage
并在Scenes
之间切换的示例代码。我需要将这个代码归功于@thenewboston,他在 YouTube 上有一个非常好用,有用且易于理解的JavaFX教程:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
public class Main extends Application {
Stage window;
Scene scene1, scene2;
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
window = primartStage;
Label label1 = new Label("Welcome to the first scene!");
Button button1 = new Button("Go to scene 2");
button1.setAction(e -> window.setScene(scene2));
// Layout 1 - children are laid out in vertical column
VBox layout1 = new VBox(20);
layout1.getChildren().addAll(label1, button1);
scene1 = new Scene(layout1, 200, 200);
// Button 2
Button button2 = new Button("Go back to scene 1");
button2.setAction(e -> window.setScene(scene1));
// Layout 2
StackPane layout2 = new StackPane();
layout2.getChildren().add(button2);
scene2 = new Scene(layout2, 600, 600);
window.setScene(scene1);
window.setTitle("Switching Scenes");
window.show();
}
}