我正在开发一个使用jLabels的程序,我需要检查label是否为空。如果为空,则应该弹出一个说明为空的注释,但实际上它会引发很多错误。我正在使用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,则会弹出一个弹出窗口。
答案 0 :(得分:3)
是的,必须在najboljsi1.getText().isEmpty()
的任何解析之前测试najboljsi1.getText()
。
您的if将变成:
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...
答案 1 :(得分:2)
如果对带有文本“”(空字符串)的标签执行Integer.parseInt(najboljsi2.getText()),则该整数将不是整数。将引发异常。
答案 2 :(得分:1)
我认为您的问题是在没有任何检查的情况下使用“ Integer.parseInt”!例如,如果变量包含一个空字符串,它将抛出异常,并且您的if子句将永远无法工作!
我会仔细检查情况。
Ps。抱歉,我用一些额外的链接修改了答案