【发布时间】:2017-03-16 19:43:28
【问题描述】:
我收到错误Integer 类型中的方法 parseInt(String) 不适用于参数(布尔值)
这里是代码
} else if (Integer.parseInt(answerField.getText() == null)) {
JOptionPane.showMessageDialog(null, "You did not enter an answer!");
}
我也试过了,但是不行:
(Integer.parseInt(answerField.getText().equals("")))
&
(Integer.parseInt(answerField.getText().length()) == 0)
我只想检查是否没有输入任何内容,如果是,则显示一个 JOptionPane。
编辑:var answerField 是一个 JTextField,用户在其中输入数学问题的答案。所以 ActionListener 然后确定答案是否正确,因此 parseInt (因为它是一个数学运算)
do {
checkButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (Integer.parseInt(answerField.getText()) == correctAnswer) {
count++;
JOptionPane.showMessageDialog(null, "Correct");
} else if (Integer.parseInt(answerField.getText().length()) == 0) {
JOptionPane.showMessageDialog(null, "You did not enter an answer!");
} else {
count++;
JOptionPane.showMessageDialog(null, "Incorrect!");
System.exit(0);
}
}
});
} while (count < 11);
【问题讨论】:
-
您正在将一个布尔表达式传递给 parseInt(),它需要一个字符串。不要试图在一行中做所有事情。检查字符串是否为空/null,然后解析它(如果需要解析)。但鉴于你所说的,你所需要的只是
if (answerField.getText().isEmpty()) -
* 为什么要使用 Integer.parseInt() ?为了检查是否有文本,您需要使用此 `if (answerField.getText() == null || answerField.getText().equals(""))
-
注意,如果 answerField 是 JTextField 或 JTextArea,它的 getText() 方法永远不会返回 null。
-
我不太熟悉 Java,但我知道在进行类型转换时可以使用强制转换语法,它可能对您有所帮助..
标签: java