我创建了一个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
}
答案 0 :(得分:0)
JOptionPane不支持此功能。它生成的按钮总是BasicOptionPaneUI$ButtonActionListener
作为唯一的监听器,它只设置"值"窗格返回,这也会触发关闭对话框的属性更改。
您可以做的是创建自己的JButton
并将其(或JPanel
包含它)传递给JOptionPane
作为"消息"参数。但它会在JOptionPane
按钮的行上方。