我有一个MenuItem"load",它在GUI中打开四个选项卡。但是,当我再次单击"加载"时。而不是关闭以前打开的选项卡。它只是在后面追加。如何自动关闭它们?
load.setOnAction(e -> {
cb.loadBinary();
pb.loadPersonBinary();
tb.loadTextbookBinary();
Tab tabS = new Tab();
tabS.setText("Student");
studentScene = new SceneStudent(this, pb);
tabS.setContent(studentScene.getPane());
root.setCenter(tabPane);
Tab tabF = new Tab();
tabF.setText("Faculty");
facultyScene = new SceneFaculty(this, pb);
tabF.setContent(facultyScene.getPane());
root.setCenter(tabPane);
Tab tab = new Tab();
tab.setText("Text Book");
textScene = new SceneTextBook(this, tb);
tab.setContent(textScene.getPane());
root.setCenter(tabPane);
Tab tabC = new Tab();
tabC.setText("Course");
courseScene = new SceneCourse(this, cb);
tabC.setContent(courseScene.getPane());
tabPane.setTabClosingPolicy(TabClosingPolicy.ALL_TABS);
MenuItem buttonClicked = (MenuItem) e.getTarget();
if(buttonClicked == load){
tabPane.getTabs().removeAll();
}
tabPane.getTabs().addAll(tabS, tabF, tab, tabC);
root.setCenter(tabPane);
});
不要检查单击的MenuItem是否是您的"加载"项目,先删除,然后添加,只需执行:tabPane.getTabs().setAll(tabS, tabF, tab, tabC);
请参阅此处的文档。