Не отображать ни одной кнопки внутри сцены - PullRequest
0 голосов
/ 19 сентября 2018

это простая программа javafx, которая будет переключаться между двумя сценами.Программа компилируется нормально, но не показывает никаких компонентов внутри сцены.Я использовал два макета, две кнопки и две сцены.Предположим, что все необходимые пакеты были импортированы.Исходный код: github.com/tmtanzeel/javafx/Program5.java

public class Program5 extends Application {
  Button button1;
  Button button2;

  public static void main(String[] args) {
      launch(args);
  }

  @Override
  public void start(Stage primaryStage) throws Exception {
  button1=new Button();
  button2=new Button(); 

  button1.setText("Yes");
  button2.setText("No");

  StackPane layout1=new StackPane();
  layout1.getChildren().add(button1);

  StackPane layout2=new StackPane();
  layout2.getChildren().add(button1);

  Scene scene1=new Scene(layout1, 450,250);
  Scene scene2=new Scene(layout2, 250, 450);

  button1.setOnAction(e -> {
    primaryStage.setScene(scene1);
  });

  button2.setOnAction(e -> {
    primaryStage.setScene(scene2);
  });

  primaryStage.setScene(scene1);
  primaryStage.setTitle("Window-1");
  primaryStage.show();
 }
}

1 Ответ

0 голосов
/ 19 сентября 2018

У вас были некоторые синтаксические ошибки, но это работает, вы ранее устанавливали одну и ту же сцену, поэтому она делала то, что было сказано, она переключалась на одну и ту же сцену, и вы только добавляли кнопку 1 на оба экрана

public class Main extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        Button button1 = new Button();
        Button button2 = new Button();

        button1.setText("Yes");
        button2.setText("No");

        StackPane layout1 = new StackPane();
        layout1.getChildren().add(button1);

        StackPane layout2 = new StackPane();
        layout2.getChildren().add(button2); //This should be button2

        Scene scene1 = new Scene(layout1, 450, 250);
        Scene scene2 = new Scene(layout2, 250, 450);

        button1.setOnAction(e -> primaryStage.setScene(scene2)); //You set the wrong scene here

        button2.setOnAction(e -> primaryStage.setScene(scene1)); //And here

        primaryStage.setScene(scene1);
        primaryStage.setTitle("Window-1");
        primaryStage.show();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...