java - JOptionPane 在无按钮上关闭框架

标签 java netbeans switch-statement joptionpane system.exit

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

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

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 语句。

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

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
}

关于java - JOptionPane 在无按钮上关闭框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38421339/

相关文章:

java - ArangoDB 和 velocypack,使用不可变类作为 dtos

java - 独立于容器的自定义领域(例如 Tomcat 和 Jetty)

Netbeans 跳出引号的键盘快捷键

java - 如何调试我的代码?

java - 在扑克牌程序中使用 switch 语句 (Java)

带有数组或字符串的 Javascript 开关盒

java - java中如何将String转换成Hashmap

java - 在 POJO 上包装 XPath 语言/接口(interface)的最佳方法是什么?

c++ - netbeans 不显示 C++ 输出

java - switch 语句和用户输入