BorderPane.getCenter() が、それが配置されている領域から返されるノードを削除することに気付きました。私がやろうとしているのは、子を BorderPane の中央にミラーリングし、それを別の BorderPane に入れて、コード (タブを null に設定して選択されていない場合にメモリを解放しようとする試み) が機能しているかどうかを確認することです。これが私のコードです:
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 にロードした fxml が挿入された場所です。 . BorderPane のドキュメントを確認したところ、
getCenter() プロパティ センターの値を取得します。
そのため、MyTabBP の中心にあるすべてのものを複製するだけだと考えました。私の質問は、BorderPane の領域 (上、左、下、右、中央) の内容をミラーリングするにはどうすればよいですか? そして、ノードで変更が発生すると、それを参照しているユーザーが更新されることを願っています。これが実際に機能しているかどうかをテストできるように。
MyTabBP.setCenter(null);
どんな助けでも素晴らしいでしょう。ありがとう!