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

"はい" "いいえ"キャンセル "があるタブ付きテキストエディタの確認をしたいと思います。閉じるタグイベントを発生させる方法はありますか? currentEditor.isModified()falseあるとき」が選択されている?おかげで悲しいことJavaFXファイアクローズタブイベント

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

を、タブは、任意の提案を閉じることができない?おかげ

+0

必要なものを見つけます。 http://code.makery.ch/blog/javafx-dialogs-official/。私は確認ダイアログが必要であると推測しています。 – Sedrick

答えて

2

イベントを消費することの近くに拒否権。あなたがいる場合、イベントをだけ消費する必要がありますのでユーザーがタブを閉じたくないと判断した場合は、イベントを伝播させますタブが閉じます:

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(); 
     } 
    } 
}); 
関連する問題