如何防止自动JOptionPane YES_NO_OPTION确认对话框关闭?

时间:2018-05-10 19:15:48

标签: java swing joptionpane

我创建了一个JOptionPane,它只有两个按钮YES_NO_OPTON。弹出JOptionPane.showConfirmDialog后,如果用户单击“是”按钮,则对话框通常会消失。但是如果用户按下YES按钮,我想阻止它关闭。仅当用户单击“否”按钮时,它才会消失。

int dialogResult = JOptionPane.showConfirmDialog (null, "Press YES to continue?", "Click a Button", JOptionPane.YES_NO_OPTION);

 if(dialogResult == JOptionPane.YES_OPTION)
    {
         CDUtils.open("F:\\");// Calls a method to do some work
        // Prevent Dialog Box from closing
    }
    else(dialogResult == JOptionPane.NO_OPTION)
        {
             System.exit(0);
            // Close the Dialog Box 
        }

1 个答案:

答案 0 :(得分:0)

JOptionPane不支持此功能。它生成的按钮总是BasicOptionPaneUI$ButtonActionListener作为唯一的监听器,它只设置"值"窗格返回,这也会触发关闭对话框的属性更改。

您可以做的是创建自己的JButton并将其(或JPanel包含它)传递给JOptionPane作为"消息"参数。但它会在JOptionPane按钮的行上方。