1
Я пытался сделать свое приложение переключаться между сценами. Вот копия части кода. Сцена кредитов просто имеет кнопку «Назад», которая должна вернуть меня на главную сцену.Сценарий переключения JavaFX
Когда я пытаюсь нажать кнопку «Кредиты» на главной сцене, становится белым белый экран. Я считаю, что есть лучший способ решить эту проблему, можете ли вы дать мне несколько советов?
public class Application {
public static void main(String[] args) {
javafx.application.Application.launch(GUI.class);
}
}
public class GUI extends Application {
@Override
public void start(Stage primaryStage) {
Scene mainScene, creditsScene = null;
mainScene = getMainScene(primaryStage, creditsScene);
creditsScene = getCreditsScene(primaryStage, mainScene);
primaryStage.setTitle("Test application");
primaryStage.setScene(mainScene);
primaryStage.show();
}
private Scene getMainScene(Stage primaryStage, Scene creditsScene) {
final Button credits = new Button("Credits");
credits.setOnAction((ActionEvent e) -> {
primaryStage.close();
primaryStage.setScene(creditsScene);
primaryStage.show();
});
VBox x = new VBox(50);
x.setAlignment(Pos.CENTER);
x.getChildren().addAll(run, displayInfo,
label1, displayInfo, textField, submitName, credits, exit);
//scene size
Scene scene = new Scene(x, 650, 900);
return scene;
}
private Scene getCreditsScene(Stage primaryStage, Scene main) {
final Button back = new Button("Back");
back.setOnAction((ActionEvent e) -> {
primaryStage.setScene(main);
});
VBox x = new VBox(50);
x.getChildren().addAll(back);
Scene credits = new Scene(x, 650, 900);
return credits;
}
Я понимаю, но как я могу изменить его для правильной работы, потому что я передаю сцену кредитов getMainScene() и основную сцену в getCreditsScene. Выполняя это так, они не могут быть оба инициализированы –
@JasonPer Сделать их поля вместо локальных переменных. Тогда вам не нужно передавать их в качестве параметров вообще. –
@James_D точно. Или сделайте параметр для одной из сцен, которая возвращает вам ссылку на другую сцену. –