你不想監聽器,你想從JTextField
文本並測試它是否是int
。
if (!input.getText().trim().equals(""))
{
try
{
Integer.parseInt(myString);
System.out.println("An integer"):
}
catch (NumberFormatException)
{
// Not an integer, print to console:
System.out.println("This is not an integer, please only input an integer.");
// If you want a pop-up instead:
JOptionPane.showMessageDialog(frame, "Invalid input. Enter an integer.", "Error", JOptionPane.ERROR_MESSAGE);
}
}
你也可以使用正則表達式(矯枉過正的一點點,但它的工作原理):
boolean isInteger = Pattern.matches("^\d*$", myString);
好的謝謝。我實際上一直在使用parseInt。但有沒有一種方法,如果你試圖輸入一個字符串,那麼somesort的taketip會彈出並說'只需要整數(JTextField將不允許輸入)?或者是太複雜,寫在Java中?再次感謝 –
您可以在上面的catch子句中彈出一條錯誤消息,或者將JLabel放入對話框以顯示錯誤消息。哪個看起來更好取決於你在那裏還有什麼,但一般來說彈出窗口是破壞性的。 [編輯包含錯誤對話框] –
好的感謝您的幫助。對話框是最好的解決方案。再次感謝 –