【问题标题】:Java exceptions pop up windowJava 异常弹出窗口
【发布时间】:2016-12-23 10:27:19
【问题描述】:

我的问题是当用户输入错误的输入时如何弹出消息,这与用正确的颜色填充正确的字符串(rood、groen、oranje)有关,但是当他没有输入时文本字段中的任何内容或错误的名称(字符串)都应该返回一个弹出窗口的错误。

以下片段:

Java 类 sn-p:

    int Kleurteller;
    for (Kleurteller = 1; Kleurteller <= 7; Kleurteller++) {
        if (kleur != null) {
            if (kleur.equals("rood")) {
                g.setColor(Color.red);
                g.fillOval(795, 45, 30, 30);
            } else if (kleur.equals("groen")) {
                g.setColor(Color.green);
                g.fillOval(795, 45, 30, 30);
            } else if (kleur.equals("oranje")) {
                g.setColor(Color.orange);
                g.fillOval(795, 45, 30, 30);
            }
            else {
            try{}
            catch (Exception e){
            JOptionPane.showMessageDialog(null, "geen juiste kleur opgegeven, kies rood, groen of oranje");

            }

            }

        }
    }

在我的主类中,我有一个文件路径,因此它将运行它。 (SetContentPane)。

当用户在文本字段中输入错误内容时,当前不再显示红线。不要弹出我的程序需要的屏幕

【问题讨论】:

    标签: java exception joptionpane


    【解决方案1】:

    只是让尝试/抓住:

     int Kleurteller;
        for (Kleurteller = 1; Kleurteller <= 7; Kleurteller++) {
            if (kleur != null) {
                if (kleur.equals("rood")) {
                    g.setColor(Color.red);
                    g.fillOval(795, 45, 30, 30);
                } else if (kleur.equals("groen")) {
                    g.setColor(Color.green);
                    g.fillOval(795, 45, 30, 30);
                } else if (kleur.equals("oranje")) {
                    g.setColor(Color.orange);
                    g.fillOval(795, 45, 30, 30);
                }
                else {
                    JOptionPane.showMessageDialog(null, "geen juiste kleur opgegeven, kies rood, groen of oranje");
                }
            }
        }
    

    顺便说一句,我建议您始终以小写字母开头变量名,这样更容易区分类名和变量名。

    如果你这样做,你甚至不必检查kleur 不是null

            if ("rood".equals(kleur)) {
                g.setColor(Color.red);
                g.fillOval(795, 45, 30, 30);
            } else if ("groen".equals(kleur)) {
                g.setColor(Color.green);
                g.fillOval(795, 45, 30, 30);
            } else if ("oranje".equals(kleur)) {
                g.setColor(Color.orange);
                g.fillOval(795, 45, 30, 30);
            }
            else {
                JOptionPane.showMessageDialog(null, "geen juiste kleur opgegeven, kies rood, groen of oranje");
            }
    

    【讨论】:

    • 好的,但是当你运行程序时,这个消息会一直显示并且你不能关闭它。唯一可能的方法是关闭程序以关闭选项卡。想解决这个问题?
    • 对话框上应该有一个“确定”按钮,不是吗?
    • 是的,一切看起来都很好,但是当你想点击它时它不会关闭。
    • 我可以按确定按钮,但它会立即消失然后又回来并像错误一样不断发送垃圾邮件,我无法关闭它它只是不断回来感觉就像无限关闭窗口并重新打开
    • 啊,现在我明白了:这是因为你在 for 循环中有对话框!它出现了6次,对吧?你不需要for子句。只需使用我发布的第二个代码。
    猜你喜欢
    • 2017-12-07
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    • 1970-01-01
    相关资源
    最近更新 更多