更简单的方法来提示保存对话框

时间:2012-10-10 14:07:15

标签: java swing

我有一个程序,当按下编辑按钮时,窗口进入“编辑模式”,您可以根据需要更改字段,然后当您按下保存按钮时,它会保存您已完成的操作。我想要它的方式,如果你处于编辑模式,然后按另一个按钮我想要一个对话框来询问你是否要保存(是/否)。

现在我提示保存,如果它处于“编辑”模式,如果用户按下是,它将保存文件,如果按下任何其他内容,它将执行按钮应该执行的操作。

这就是我目前所拥有的。我想知道是否有更简单的方法来执行此操作,而不是将按钮的操作放在那里两次。

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...
}

2 个答案:

答案 0 :(得分:1)

这是正确的方法,但您应该将showConfirmDialog()的结果与JOptionPane常数进行比较:

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

不仅可以让其他人更好地阅读,而且如果常数有一天更改,你的代码仍然有效(但不太可能)。

答案 1 :(得分:1)

您可以将Button操作放在另一个方法中,如下所示:

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();
}