java – JOptionPane YES_NO_OPTION
发布时间:2020-12-15 04:16:45 所属栏目:Java 来源:网络整理
导读:我在使用非常基础的初级 Java程序时遇到了一些问题.我有一个函数,它应该返回一个值,该值取决于用户对JOptionPane YES_NO_OPTION消息框的响应.该程序运行正常,直到您看到再次启动或退出的选项.无论您选择哪个选项,是或否,它都会带您回到新的循环.我知道解决这
我在使用非常基础的初级
Java程序时遇到了一些问题.我有一个函数,它应该返回一个值,该值取决于用户对JOptionPane YES_NO_OPTION消息框的响应.该程序运行正常,直到您看到再次启动或退出的选项.无论您选择哪个选项,是或否,它都会带您回到新的循环.我知道解决这个问题的一种方法就是依靠取消按钮,但我想理解为什么这段代码没有返回我期望的值,所以非常感谢你的帮助.
import javax.swing.JOptionPane; public class HelloMK2 { public static void main(String[] args) { for (int i = 0; i < 3000; i++) { double Int1 = optiontakeshape(); double Int2 = optiontakediam(); if (Int1 == 1.0) { Shape s1 = new Circle(Int2); infoBox(s1.area2d()); } else { Shape s1 = new Sphere(Int2); infoBox(s1.volume()); } int yesno = repeat(); if (yesno == 1) { System.out.println(yesno); break; } } } public static int repeat() { int j; int g = JOptionPane.YES_NO_OPTION; JOptionPane.showConfirmDialog(null,"Would you like to begin again?","Repeat?",g); if (g == JOptionPane.NO_OPTION) { j = 1; System.exit(0); } else if (g == JOptionPane.YES_OPTION) { j = 2; } else { j = 3; System.exit(0); } System.out.println(j); return j; } //... } 编辑:谢谢你的快速反应.我实际上并没有测试Yes / No结果的值.我现在实现的代码是: public static int repeat () { int j; if (JOptionPane.showConfirmDialog(null,JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION){ j = 2; } else { j = 1; //System.exit(0); escaped so I could test the break point was working properly } System.out.println(j); return j; } 解决方法
这是你的问题.
int g = JOptionPane.YES_NO_OPTION; g将始终为YES_NO_OPTION,其在整数值方面与YES_OPTION相同.两者都是0. 而是试试这个 int g = JOptionPane.showConfirmDialog(null,JOptionPane.YES_NO_OPTION); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |