我收到错误在Integer类型的方法parseInt函数(字符串)不适用于参数(布尔)在Integer类型的方法parseInt函数(字符串)不适用于参数(布尔)
下面是代码
} 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(),它需要一个String。不要试图在一条线上做所有事情。检查字符串是否为空/空值,然后解析它(如果需要解析)。但是,根据你所说的,你所需要的只是'if(answerField.getText()。isEmpty())' –
*你为什么要使用Integer.parseInt()? 为了检查是否有文本,你需要使用这个 if(answerField.getText()== null || answerField.getText()。equals(“”)) – Tano
请注意,如果answerField是一个JTextField或一个JTextArea,它的getText()方法永远不会返回null。 –