Java 如何在按下x按钮时关闭JOptionPane消息框?

Java 如何在按下x按钮时关闭JOptionPane消息框?,java,swing,jframe,Java,Swing,Jframe,我使用JOptionPane showMessageDiaglog来显示带有选项的消息,但每当我决定退出并单击红色的X按钮时。它仍然执行一个动作,就好像我按下了第一个选项一样。我怎样才能在出口处靠近它 我是这样写的: int n = JOptionPane.showOptionDialog(g, "?", "Check", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, l, l[0]); 这很简单 /

我使用JOptionPane showMessageDiaglog来显示带有选项的消息,但每当我决定退出并单击红色的X按钮时。它仍然执行一个动作,就好像我按下了第一个选项一样。我怎样才能在出口处靠近它

我是这样写的:

int n = JOptionPane.showOptionDialog(g, "?", "Check", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, l, l[0]);
这很简单

//First of all put the options dialog code like this.
int n = JOptionPane.showOptionDialog(this, "?", "Check", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE,null,null,null);
//Now grab the value of n into switch case like this.
switch(n)
{
    case 0:
        //Yes
    break;
    case 1:
        //No
    break;
    case 2:
        //Cancel
    break;
    case -1:
        //User pressed 'X' button on the options dialog.If you want to exit app here.
        System.exit(0);
    break;
}
这里有一个提示

如果您想检查任何消息对话框的返回值,只需获取返回值并将其打印在控制台上,或者只需显示另一个包含返回值的消息框。这样,您就可以轻松了解当用户按下消息对话框中的哪个按钮时会发生什么。


希望这能解决您的问题。

您是否正在测试
n==JOptionPane.YES\u OPTION
?@MadProgrammer我正在使用n来获取一个整数,以便以后使用它,就像如果n=0做某事如果n=1做某事,则框显“返回:一个整数,指示用户选择的选项,或者如果用户关闭了对话框,则关闭\u选项”-所以你应该检查一下
n!=JOptionPane.CLOSED_选项
,但概念是samethanks:D,我会试试。但看起来它将工作,你应该考虑使用<代码> YESYOPTION/<代码>,<代码> NOYOPTION> 和 CaleEjava选项>代码>而不是数值,因为常量可以改变眼睛,可能是在一个新的Java更新(但不是很快)之后。这只是一个简单的工作。