Мне нужно выполнить аутентификацию пользователя и вернуть пользователя, если он недействителен в java
0 Adesh [2012-10-23 17:48:00]
Я должен подтвердить свой ввод пользователя для целочисленного значения и предложить пользователю повторно ввести, если введено недопустимое значение. До сих пор я собрал этот метод ниже. Я считаю, что логика правильная, но мне нужно заставить пользователя повторно вводить вход снова после сообщения об ошибке.
void validateItemquantity() {
boolean error = true;
while (error) {
try{
Integer.parseInt(itemQuantityinput.getText());
error = false;
}
catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null, "Item quantity must be a positive number, please reenter");
error = true;
}
}
}
Часть кода из метода jframe:
private void bnPurchaseActionPerformed(java.awt.event.ActionEvent evt) {
String itemCode;
int itemQuantity, itemPrice, itemCost, totalCost ;
validateItemquantity();
itemCode = itemCodeinput.getText();
itemQuantity = Integer.parseInt(itemQuantityinput.getText());
itemPrice = catalog.searchCatalog(itemCode);
itemCost = payment.calculateItemcost(itemQuantity,itemPrice);
totalCost = payment.calculateTotalcost(itemCost);
java validation try-catch
3 ответа
1 Решение La bla bla [2012-10-23 17:59:00]
Я думаю, что цикл должен быть в вызывающем методе.
boolean validateItemquantity() {
try{
Integer.parseInt(itemQuantityinput.getText());
return true;
}
catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null, "Item quantity must be a positive number, please reenter");
error = false;
}
}
И вызывающая часть должна быть чем-то вроде этого
while(!validateItemquantity())
2 Anirudh Ramanathan [2012-10-23 17:57:00]
Метод validateItemquantity()
должен возвращать значение true или false в зависимости от того, действителен ли вход или нет.
Вы можете позаботиться об истинных и ложных случаях в вызывающей функции. Чтобы принять ввод, вы могли бы показать диалоговое окно ввода.
String text = JOptionPane.showInputDialog ("Enter New Value"));
1 salbeira [2012-10-23 18:06:00]
Если пользователь вводит неправильное значение, ваш метод будет работать бесконечно. Если метод не дождался закрытия JOptionPane, вы столкнетесь с неизмеримым количеством всплывающих окон.
Вы должны позволить методу возвращать логическое значение в любом случае и изменять какое-то "состояние", другое логическое или какое-либо другое переменное состояния, в вашей программе, если оно преуспеет.
Если это не так, вы можете позволить своему "циклу" вернуться к точке, в которой пользователь должен ввести номер, а затем позволить ему перезапустить процесс проверки, но, на мой взгляд, вы не должны перезапускать процесс проверки на нем, когда он выходит из строя.