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

Java 提示保存对话框的更简单方法,java,swing,Java,Swing,我有一个程序,当按下编辑按钮时,窗口进入“编辑模式”,你可以随意更改字段,然后当你按下保存按钮时,它会保存你所做的事情。如果您处于编辑模式,请按我希望的方式,然后按另一个按钮,我希望弹出一个对话框,询问您是否要保存(是/否) 现在,如果它处于“编辑”模式,我会提示它保存,如果用户按“是”,它将保存文件,如果按了其他任何按钮,它将执行按钮应该执行的操作 这就是我目前拥有的。我想知道是否有一个更简单的方法来做这件事,而不是把按钮的行动在那里两次 if (editing) { save

我有一个程序,当按下编辑按钮时,窗口进入“编辑模式”,你可以随意更改字段,然后当你按下保存按钮时,它会保存你所做的事情。如果您处于编辑模式,请按我希望的方式,然后按另一个按钮,我希望弹出一个对话框,询问您是否要保存(是/否)

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

这就是我目前拥有的。我想知道是否有一个更简单的方法来做这件事,而不是把按钮的行动在那里两次

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

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

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

不仅其他人可以更好地阅读它,而且如果有一天更改常量,您的代码仍然可以工作(但可能性很小)。

您可以将按钮操作放在其他方法中,如下所示:

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

一开始我打算这么做,但我不知道初始化为什么。现在我有了“另存为int”选项。访问常量时不必初始化它(如
JOptionPane.YES\u选项
)。它是一个
公共静态final int