2012-10-10 50 views
0

我有一個程序,當按下編輯按鈕時,窗口進入「編輯模式」,您可以隨意更改字段,然後當您按下保存按鈕時,它可以節省您所擁有的完成。我想要的方式,如果您處於編輯模式,然後按另一個按鈕,我想要一個對話框來詢問您是否要保存(是/否)。更簡單的方法來提示保存對話框

現在我有它提示保存,如果它處於「編輯」模式,並且如果用戶按下是,它將保存該文件,如果有其他東西被按下它將做任何按鈕應該是做。

這是我目前的。我想知道是否有更簡單的方法來做到這一點,而不是將按鈕的動作放在那裏兩次。

if (editing) { 
     save = JOptionPane.showConfirmDialog(this, "Would you like to save?", "Save", 
      JOptionPane.YES_NO_OPTION); 

     if (save == 0) { 
      saveFile(); 
     } else { 
      //Button actions here... 
     } 
} else { 
    //Button actions here... 
} 

回答

1

這是正確的做法,但你應該相當具有JOptionPane不變的showConfirmDialog()結果比較:

if (save == JOptionPane.YES_OPTION) { 
    // ... 
} 

它不僅是別人更好的可讀性,而且如果常數改變你的代碼仍然可以工作有一天(但不太可能)。

+0

我要做到這一點在第一,但我不知道該怎麼把它初始化爲。現在我有保存爲int。 – Caveman42

+0

訪問它時不需要初始化一個常量(如'JOptionPane.YES_OPTION')。它是一個'公共靜態final int' –

1

你可以把按鈕動作中的另一種方法,就像這樣:

private void buttonActions() { 
    // Button actions here... 
} 

然後

if (editing) { 
    save = JOptionPane.showConfirmDialog(this, "Would you like to save?", "Save", 
     JOptionPane.YES_NO_OPTION); 

    if (save == JOptionPane.YES_OPTION) { 
     saveFile(); 
    } else { 
     buttonActions(); 
    } 
} else { 
    buttonActions(); 
}