如何使JOptionPane.showConfirmDialog默认没有选择?

2022-09-01 13:56:35

我在Java中实现了一个“另存为”对话框,该对话框会提示用户该文件是否已存在,并且我希望默认情况下选择“否”选项。我该怎么做?

这是我当前的代码:

JFileChooser chooser = new JFileChooser()
{
    public void approveSelection()
    {
        File selectedFile = getSelectedFile();
        if (selectedFile != null && selectedFile.exists( ) )
        {
            int response = JOptionPane.showConfirmDialog(
                    this,
                    "The file " + selectedFile.getName() + " already exists."
                        + " Do you want to replace the existing file?",
                    getDialogTitle(),
                    JOptionPane.YES_NO_OPTION,
                    JOptionPane.WARNING_MESSAGE);
            if (response != JOptionPane.YES_OPTION )
            {
                return;
            }
        }

        super.approveSelection();
    }
};

答案 1

这是我想到的第一件事。

//Custom button text
Object[] options = {"Yes",
                    "No"};
JOptionPane.showOptionDialog(this, "The file " + selectedFile.getName() + 
                  " already exists. Do you want to replace the existing file?", 
                  getDialogTitle(), 
                  JOptionPane.YES_NO_OPTION, 
                  JOptionPane.WARNING_MESSAGE, 
                  null, options, options[1]);

但可能有更好的方法。


答案 2

使用以下构造函数:

JOptionPane(Object message, int messageType, int optionType,
            Icon icon, Object[] options, Object initialValue)

其中指定按钮,并具有(其中一个值)指定默认值。optionsinitialValueoptions

更新:您可以呼叫而不是 。前者取和参数。showOptionDialogshowConfirmDialogoptionsinitialValue


推荐