-1

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

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

1 回答 1

0

JOptionPane 不支持这一点。它生成的按钮始终BasicOptionPaneUI$ButtonActionListener作为唯一的侦听器,它只是设置窗格返回的“值”,它还会触发关闭对话框的属性更改。

您可以做的是创建自己的JButton并将其(或JPanel包含它的)JOptionPane作为“消息”参数传递给。不过,它将位于JOptionPane按钮行的上方。

于 2018-05-10T21:15:48.480 回答