无按钮上的JOptionPane关闭框架[重复]

Posted

技术标签:

【中文标题】无按钮上的JOptionPane关闭框架[重复]【英文标题】:JOptionPane close frame on No button [duplicate] 【发布时间】:2016-11-20 03:40:37 【问题描述】:

我在 JOptionPane 上有这段代码 sn-p。我想在单击“是”按钮时打开另一个框架,并在单击“否”或“取消”时关闭该框架。

在我将案例 1 和案例 2 设置为 System.exit(0) 之前; case 0 工作得很好,因为它成功地打开了另一个框架。但是,当我在单击“是”按钮时将 system.exit 放入案例 1 和案例 2 时,它仍然会关闭框架。

int test = JOptionPane.showConfirmDialog(null, "You lost! Play again?");

         switch(test) 
             case 0:  RPS rps = new RPS();
                        rps.setVisible(true);
                        this.dispose(); //Yes option
             case 1: System.exit(0); //No option
             case 2: System.exit(0); //Cancel option
           

我做错了什么?

【问题讨论】:

break 语句丢失 【参考方案1】:

您忘记在代码中添加 break 语句。

编辑后,您的代码可能如下所示:

int test = JOptionPane.showConfirmDialog(null, "You lost! Play again?");
switch(test) 
case 0: RPS rps = new RPS();
        rps.setVisible(true);
        this.dispose(); // Yes option
        break;
case 1: System.exit(0); // No option
case 2: System.exit(0); // Cancel option

最好使用JOptionPane提供的常量,如下:

int test = JOptionPane.showConfirmDialog(null, "You lost! Play again?");
switch(test) 
case YES_OPTION: RPS rps = new RPS();
                 rps.setVisible(true);
                 this.dispose(); // Yes option
                 break;
case NO_OPTION: System.exit(0); // No option
case CANCEL_OPTION: System.exit(0); // Cancel option

【讨论】:

以上是关于无按钮上的JOptionPane关闭框架[重复]的主要内容,如果未能解决你的问题,请参考以下文章

没有按钮的 JOptionPane

没有标题栏或关闭按钮的 JOptionPane 内部对话框?

使 JOptionPane 消息对话框在渲染后消失

单击按钮关闭 JFrame [重复]

关于JOptionPane的showConfirmDialog问题

如何在打开另一个JFrame时关闭JFrame? [重复]