Изменение сцены в другом методе класса JavaFX - PullRequest
0 голосов
/ 15 декабря 2018

Я новичок в JavaFX.Я пытаюсь изменить сцену в своем первом проекте, и мне интересно, смогу ли я сделать это так:

public class A {
        ...
    public void start(Stage primaryStage) throws Exception {
            ...
        B ObjectB = new B();
        Scene scene = new Scene();
        primaryStage.setScene(scene);
            ...
        if (...) {
            ObjectB.anotherFunction(primaryStage);
        }
        primaryStage.show();
    }
}

public class B {
        ...
    public void anotherFunction(Stage stage) {
            ...
        Scene NewScene = new Scene();
        stage.setScene(NewScene);
        stage.show();
    }
}

Код выше - сокращенная версия того, что я написал.Я хочу изменить сцену из одного класса, который похож на класс меню (A) в другом классе (B), и отобразить новую сцену на экране.Кажется, что это невозможно, как я это сделал, и мне любопытно, каковы хорошие практики в таких вещах.

1 Ответ

0 голосов
/ 15 декабря 2018

Это работает.Например, попробуйте просто вызвать

  ObjectB.anotherFunction(primaryStage);

после или перед вашим

primaryStage.show();

методом.Ваша проблема здесь в том, что вы проверяете это «если» один раз, еще до того, как показывать этот этап, и оно ложно в начале, а затем, когда оно сбывается, - этот фрагмент кода уже пройден.Вам просто нужно запустить ObjectB.anotherFunction(primaryStage);, когда установите условие if в true.

PS.и pls, начинайте имя ваших переменных с маленькой буквы, objectB вместо ObjectB - это всего лишь соглашение об именах Java.

...