2015-12-09 4 views
1

У меня есть функция «Загрузка» MenuItem, которая открывает четыре вкладки в графическом интерфейсе. Однако, когда я снова нажимаю «загрузить». Вместо закрытия открытых вкладок. Он просто добавляет после него. Как я могу закрыть их автоматически?JavaFx TabPane Автоматическое закрытие

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); 
    }); 
+0

Попробуйте использовать 'if (! TabPane.getTabs(). IsEmpty()) {...}' вместо 'if (buttonClicked == load) {...}' – Kachna

+0

Спасибо за совет –

ответ

0

Вместо того, чтобы проверить, если MenuItem, что была нажата была ваша «нагрузка» элемент, удаление, а затем добавить, просто сделать: tabPane.getTabs().setAll(tabS, tabF, tab, tabC);

См документации here.