Я заметил, что BorderPane.getCenter () удаляет узел, который он возвращает, из региона, где он находится. То, что я пытаюсь сделать, это отразить дочерний элемент внутри центра BorderPane и поместить его в другой BorderPane, чтобы проверить, работает ли мой код (попытка освобождения памяти, если вкладка не выбрана путем установки ее в ноль). Вот мой код:
TabPane.getSelectionModel().selectedItemProperty().addListener((obs,ov,nv)-{
//checks if "MyTab" tab is selected
if (nv.getText().equals("MyTab")) {
try {
MyTabBP.setCenter(FXMLLoader.load(getClass().getResource("MyTab.fxml")));
MirrorBP.setCenter(MyTabBP.getCenter());
} catch (IOException ex) {
Logger.getLogger(FXMLDocumentController.class.getName()).log(Level.SEVERE, null, ex);
}
}
// else {
// MyTabBP.setCenter(null);
// }
});
Что я заметил (когда закомментировал блок else), так это то, что после нажатия кнопки MyTab BorderPane MyTabBP будет пустым, а после проверки MirrorBP (то есть на другой вкладке), именно там будет загружен текст, который я загрузил в MyTabBP. был вставлен в. После проверки документации BorderPane, он сказал, что
getCenter ()
Получает значение центра недвижимости.
Так что я подумал, что это будет просто копировать все, что находится внутри центра MyTabBP. Итак, мой вопрос: как я могу отразить содержимое области (сверху, слева, снизу, справа, в центре) BorderPane? И, надеюсь, что когда изменение произойдет на узле, оно обновит тех, кто на него ссылается. Чтобы я мог проверить, действительно ли это работает.
MyTabBP.setCenter(null);
Любая помощь будет великолепна. Спасибо!