BorderPane.getCenter () буквально получает узел из центральной области BorderPane - PullRequest
0 голосов
/ 07 ноября 2018

Я заметил, что 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);

Любая помощь будет великолепна. Спасибо!

...