Как использовать несколько панелей в одной сцене, когда каждая панель работает независимо? - PullRequest
0 голосов
/ 11 июня 2019

По сути, я хочу, чтобы в одной сцене было несколько панелей, и я мог заставить каждую панель работать независимо. Например, я хочу сделать что-то подобное в JavaFX.

image

Итак, я хочу, чтобы фоновая сцена работала со StackPane для кнопок, и я хочу, чтобы панель прокрутки работала для прокручиваемой части списка в графическом интерфейсе.

Я видел У JavaFX есть несколько панелей в одной сцене? с похожей проблемой для моей, но я не понимаю, как реализовать ее в своем коде.

VBox root = new VBox();
root.getChildren().addAll(continueGameScreen.getMyNodes());
root.setSpacing(10);
root.setPadding(new Insets(10));
ScrollPane scrollPane = new ScrollPane();
scrollPane.setContent(root);
scrollPane.setPannable(true);
Scene scene = new Scene(root, 1366, 768);

homeStage.setScene(scene);
homeStage.show();

Как создать как отдельный блок, в котором есть только прокручиваемый список, а кнопки вне него рассматриваются как разные объекты, но в одной и той же сцене. Любая помощь будет высоко ценится.

Если это абсолютно связано с постом, на который я ссылаюсь, укажите, как заставить этот графический интерфейс работать. Спасибо.

1 Ответ

0 голосов
/ 11 июня 2019

Я не уверен, что понимаю вас, но если вы хотите создать несколько панелей в одной сцене, вы также захотите назначить fx:id для container, а затем внедрить его в свой контроллер. Затем в вашем контроллере вам нужно будет загрузить новую сцену

FXMLLoader loader = new FXMLLoader(getClass().getResource(url));
AnchorPane anchorPane = fxmlLoader.load();

Очистка всего, что есть в вашем основном контейнере:

mainContainer.getChildren().clear();

И, наконец, отправьте сцену на это

mainContainer.getChildren().add(anchorPane);

Если вы хотите, чтобы новая сцена получила ширину и высоту ее родителя, вы должны использовать

anchorPane.prefWidthProperty().bind(mainContainer.widthProperty());
anchorPane.prefHeightProperty().bind(mainContainer.heightProperty());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...