У меня есть главное окно, в котором я динамически загружаю данные из БД и создаю Button
s внутри GridPane
, который входит в ScrollPane
!
Теперь я хочу использовать одно и то же ScrollPane
со всеми его дочерними элементами во всплывающем окне моего диалогового окна, поэтому мне не нужно снова загружать все данные и изображения и все такое для моих кнопок, но когда я передаю свой ScrollPane
в качестве аргумента метода окна секунд, где я заполняю его ScrollPane
моим старым ScrollPane
, все работает хорошо, НО, ScrollPane
в моем первом окне становится пустым!
Я думаю, что это происходит из-за использования одного и того же ScrollPane
, есть ли способ использовать Deep Copy и использовать точно такой же ScrollPane
со всеми его дочерними элементами, но в отличие от моего старого ??
Вот демонстрационный код только для объяснения того, что я пытаюсь сделать!
Я вызываю метод askForDrink () из моего Main FirstWindowController и передаю ScrollPane
в качестве аргумента!
Второй оконный контроллер:
public class SecondWindow_screenController {
@FXML
private ScrollPane secondsWindowScrollPane;
void askForDrink(Product product, ScrollPane scrollPaneFromFirstWindow) {
Thread t = new Thread(() -> {
// Here I set the GridPane from my old ScrollPane to the new ScrollPane
Platform.runLater(()-> secondsWindowScrollPane.setContent(scrollPaneFromFirstWindow.getContent()));
});
t.setDaemon(true);
t.start();
}
СКРИНШОТЫ ИЗ МОЕГО ПРИЛОЖЕНИЯ:
Первое окно
Открыто диалоговое окно второго окна
Второе диалоговое окно закрыто, напитки отсутствуют!
Когда я нажимаю на кнопки средней секции, появляется новое диалоговое окно, в котором я хочу получить те же напитки из моего первого окна!
Вы можете видеть, как мои напитки ScrollPane
становятся пустыми, когда открывается второе диалоговое окно, а затем, когда я закрываю второе окно, мои напитки ScrollPane
все еще пусты!
Мне не нужна реализация кода, мне просто нужно знать, в чем заключается моя проблема. Действительно ли я использую ту же ссылку, что и ScrollPane
??