java - 如何将 JOptionPane.showOptionDialog 的默认选择更改为 default_close_operation

标签 java swing joptionpane

我遇到了这个问题,我在 OptionDialog 模式下使用了 JOptionPane,但我无法设置为默认选项,如果我选择右上角的 x,它会自行关闭;这是因为在 showOptionDialog 的声明中,它使我仅选择包含我的选择的 Object[] 数组之一,这是代码

Object[] options = {"Vacanza","Cena","Prestazione","Bene"};
int choice = JOptionPane.showOptionDialog(frame,"Nuovo Prodotto","Scegli il prodotto",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE,null,options,options[0]);
if (choice == 0) {
       //things to do }
else if (choice == 1) {
        //things to do }...

现在我必须将 showoptiondialog 的最后一个参数设置为我的选择之一,然后如果我选择右上角的 X,当我只想关闭它而不执行任何操作时,它无论如何都会执行默认选择,我该如何修复这群家伙?请帮助我

最佳答案

我尝试了这个示例代码来测试您正在尝试的内容。当我单击 X 时,它会打印出“选择了其他内容”。
也许我不明白你的问题。你能澄清一下吗?

import javax.swing.*;

public class Helloworld {
    static JFrame frame;

    public Helloworld(){
    }

    public void run(){
        Object[] options = {"Vacanza","Cena","Prestazione","Bene"};
        int choice = JOptionPane.showOptionDialog(
                null,
                "Nuovo Prodotto",
                "Scegli il prodotto",
                JOptionPane.YES_NO_OPTION,
                JOptionPane.QUESTION_MESSAGE,
                null,
                options,
                options[0]);
        if(choice == 0){
            System.out.println("0 selected");
        }
        else{
            System.out.println("Something else selected");
        }
    }

    public static void main(String[] args) {
        Helloworld hw = new Helloworld();
        hw.run();
    }
}

关于java - 如何将 JOptionPane.showOptionDialog 的默认选择更改为 default_close_operation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21438619/

相关文章:

java - Spring Batch 并行处理多次执行一个步骤

java - 本地创建的对象被另一个全局对象引用时会发生什么

java - 在JAVA中用字符 '{'定义字符串

java - 鼠标点击时显示图像?

JAVA JOptionPane.showMessageDialog 十进制输出格式

java - 无法打开选定的 VM 调试端口 (8700)。确保您没有另一个 DDM 实例

java - JFrame 的编程关闭

java - 如何用Java制作一个带有另一个框架的开始菜单?

java - 如何将 "double"值与 JOptionPane.showInputDialog 一起使用

java - 单击“确定”按钮后再次出现消息对话框