我收到錯誤在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。 –