我在JOptionPane上有这个代码片段。我想在单击"是"按钮时打开另一个框架,并在单击"否"或"取消"时关闭框架。
在我将案例 1 和案例 2 设置为 System.exit(0) 之前;案例 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
语句。
编辑后,您的代码可能如下所示:
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
}