Я знаю, что это не должно быть слишком сложно, но мои поиски еще не привели к чему-то полезному. Все, что я хочу сделать, это убедиться, что пользователь вводит положительное целое число в textField. Я пробовал:
public class myInputVerifier extends InputVerifier {
@Override
public boolean verify(JComponent jc) {
String text = ((jTextFieldMTU) jc).getText();
//Validate input here, like check int by try to parse it using Integer.parseInt(text), and return true or false
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}
Поэтому в моем основном коде я хочу использовать это для отображения "ОК" в случае успеха и "Введите положительное число", если это не удастся.
Может кто-нибудь указать мне в правильном направлении, пожалуйста? Благодарю!
Вы можете использовать блок try-catch, чтобы проверить, является ли вход целым:
try {
int i = Integer.parseInt(input);
// input is a valid integer
}
catch (NumberFormatException e) {
// input is not a valid integer
}
Строка имеет метод совпадений, который вы можете использовать с регулярными выражениями, чтобы увидеть, соответствует ли содержимое определенному шаблону. Регулярное выражение для целых положительных чисел равно ^ [1-9]\d * $, поэтому вы можете использовать его вот так...
boolean matches = text.matches("^[1-9]\d*$");
if(matches){
//Do something if it is valid
}else{
//Do something if it is not
}
Я предлагаю вам использовать try catch. Поймать исключение NumberFormatException. Таким образом вы проверяете, может ли текст анализироваться на целое число. Если нет, вы можете отобразить сообщение об ошибке пользователю. После этого вы можете использовать оператор if else, чтобы проверить, является ли число положительным, если не положительным, вы можете дать пользователю сообщение об ошибке. Я предлагаю вам исследовать попытку поймать, если вы этого не знаете.