JavaFX fire close标签事件

时间:2017-03-16 16:23:46

标签: javafx

tab.setOnCloseRequest(e -> {
                e.consume();
                if (currentEditor.isModified()){
                    switch (DialogBox.newSaveConfirmationBox(tab.getText())){
                        case "Yes": tabPane.fireEvent(???);
                    }
                }
            }

我想对选项卡式文本编辑器进行确认,其中有操作"是" "无"取消&#34 ;.当"是"是否有办法触发关闭标签事件?被选中了?感谢

tab.setOnCloseRequest(e -> {
                if (currentEditor.isModified()){
                    switch (DialogBox.newSaveConfirmationBox(tab.getText())){
                        case "Yes":
                            saveFile();
                        case "Cancel":
                            e.consume();
                    }
                }
            }
    );

可悲的是,当currentEditor.isModified()false时,标签无法关闭,有任何建议吗?感谢

1 个答案:

答案 0 :(得分:3)

消费该事件否决结束。因此,如果用户决定不想关闭选项卡,则只应使用该事件。否则,让事件传播,选项卡将关闭:

tab.setOnCloseRequest(e -> {
    // remove the next line: you only want to consume the event for "No"
    // e.consume();
    if (currentEditor.isModified()){
        if ("No".equals(DialogBox.newSaveConfirmationBox(tab.getText()))) {
            e.consume();
        }
    }
});