加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读