java - 检查标签是否为空的方法不起作用

标签 java is-empty

我正在开发一个使用 jLabels 的程序,我需要检查标签是否为空。如果它是空的,它应该只是弹出一个注释,表明它是空的,没有其他任何内容,但它实际上会引发很多错误。我正在使用 label.getText().isEmpty()。
代码如下:

if(Integer.parseInt(najboljsi1.getText())<1||Integer.parseInt(najboljsi1.getText())>17||najboljsi1.getText().isEmpty()||
       Integer.parseInt(najboljsi2.getText())<1||Integer.parseInt(najboljsi2.getText())>17||najboljsi2.getText().isEmpty()||
       Integer.parseInt(najboljsi3.getText())<1||Integer.parseInt(najboljsi3.getText())>17||najboljsi3.getText().isEmpty()||
       Integer.parseInt(najslabsi1.getText())<1||Integer.parseInt(najslabsi1.getText())>17||najslabsi1.getText().isEmpty()||
       Integer.parseInt(najslabsi2.getText())<1||Integer.parseInt(najboljsi2.getText())>17||najslabsi2.getText().isEmpty()||
       Integer.parseInt(najslabsi3.getText())<1||Integer.parseInt(najslabsi3.getText())>17||najslabsi3.getText().isEmpty())
    {
        jLabel101.setForeground(Color.red);
        jLabel101.setText("Eno ali več vnesenih števil ni v pravilnem obsegu (1-16)!");
    }
    else
    {
        jLabel101.setText("");
        int a=Integer.parseInt(najboljsi1.getText());
        tabela[a-1]+=3;
        int b=Integer.parseInt(najboljsi2.getText());
        tabela[b-1]+=2;
        int c=Integer.parseInt(najboljsi3.getText());
        tabela[c-1]+=1;
        int d=Integer.parseInt(najslabsi1.getText());
        tabela[d-1]-=3;
        int e=Integer.parseInt(najslabsi2.getText());
        tabela[e-1]-=2;
        int f=Integer.parseInt(najslabsi3.getText());
        tabela[f-1]-=1;
        najboljsi1.setText("");
        najboljsi2.setText("");
        najboljsi3.setText("");
        najslabsi1.setText("");
        najslabsi2.setText("");
        najslabsi3.setText("");
        count++;
        jLabel1.setText("Učenec "+count);
    }

if 语句中的其他所有内容都正常,如果值低于 1 或高于 16,则会抛出弹出窗口。

最佳答案

是的,您必须在解析 najboljsi1.getText() 之前测试 najboljsi1.getText().isEmpty()。 你的如果会变成:

if(najboljsi1.getText().isEmpty()||Integer.parseInt(najboljsi1.getText())<1||Integer.parseInt(najboljsi1.getText())>17||
       najboljsi2.getText().isEmpty()||Integer.parseInt(najboljsi2.getText())<1||Integer.parseInt(najboljsi2.getText())>17||
etc...

关于java - 检查标签是否为空的方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54883368/

相关文章:

Java FileWriter 不写入文件

c# - 在 WinRT 中检查目录是否为空的简单方法(异步 API)

flutter :NoSuchMethodError:在 null 上调用了 getter 'isEmpty'

java - 以 0 开头以 9 结尾的数字金字塔

java - 如何更改 Eclipse 中 Java 文档悬停的颜色

java - 如何录制 Android 模拟器操作的屏幕

java - 不重复随机数数组

java - 使用Put命令写入HDFS,得到 "Exculding datanode"

javascript - 如何以 Dart 语言将变量完全转储/打印到控制台?

MYSQL 如果没有结果我需要一些默认值