У меня есть проект JavaFX 2.2, который использует Tabpane для динамического открытия/закрытия вкладок. Я хочу закрыть Tab, когда я нажимаю на кнопку сохранения/закрытия на нем.Как закрыть вкладку Javafx 2.2, нажав кнопку сохранения/отмены внутри?
Возможно ли это?
я, хотя я мог бы получить ответ легко, но должен сказать, что это FXML проект JavaFX 2.2, есть 3 класса, участвующих, главный класс, mainclassController и tabcontroller так:
«главный» = principal.java
public Tab abaUsuario(String nome) {
try{
FXMLLoader loader = new FXMLLoader();
loader.setLocation(Principal.class.getResource("controls/novoUsuarioForm.fxml"));
AnchorPane novoUsuario = (AnchorPane) loader.load();
//UsuarioDAO usrDAO = new UsuarioDAO();
//Usuario usr = new Usuario();
NovoUsuarioFormController nvu = new NovoUsuarioFormController();
nvu.setMainApp(this);
Tab t = new Tab(nome);
t.setContent(novoUsuario);
return t;
}catch (IOException ex) {
Dialogs.showErrorDialog(primaryStage, ex.getMessage() , "Erro ao inserir Usuário", "JANELA DE ERRO");
//ex.getCause().printStackTrace();
}
return null;}
public void closeTab(){
baseWindowcontroller.closeUsuarioTab();
}
"mainController" = baseWindowController.java
@FXML
private void handleNovoUsuário(){
novoUsuarioTab = prime.abaUsuario("Novo usuario");
novoUsuarioTab.setClosable(true);
// int numtab = tab_base.getTabs().size();
// System.out.println(numtab);
tab_base.getTabs().add(novoUsuarioTab);
tab_base.getSelectionModel().selectLast();
//numtab = tab_base.getTabs().size();
}
public void closeUsuarioTab(){
// if (tab_base.getSelectionModel().isEmpty()){
// tab_base.getTabs().removeAll(novoUsuarioTab);
// tab_base.getTabs().remove(1);
//tab_base.getTabs().remove(novoUsuarioTab);
// }
Platform.runLater(new Runnable() {
@Override public void run() {
tab_base.getTabs().remove(tab_base.getSelectionModel().getSelectedIndex());
}
});
}
И
"tabController" = NewUserFormController.java
@FXML private void handlebtCancelar(){
prime.closeTab();}
премьер = Principal
Я поставил Principal.java в mainApp для контроллеров
Как вы можете видеть, что я перепробовал много возможностей.
@ RonaldoLinspinho, см. Обновление. Если он все еще не работает, опишите эту нерабочую проблему более подробно. –
Небольшая ошибка может привести нас к испорчению кода. Спасибо! –