#java #user-interface
#java #пользовательский интерфейс
Вопрос:
Итак, после нажатия кнопки сброса или появления сообщения об ошибке все значения становятся пустыми, но продолжают добавляться, когда вы продолжаете использовать программу, но они должны начинаться заново.
public GroceryCalc() {
initComponents();
purchase = 0;
numitems = 0;
}
public void recordPurchase(double item_price) {
purchase = purchase item_price;
numitems ;
}
public double getPurchase() {
return purchase;
}
public int getItems() {
return numitems;
}
private void
Checkout_ButtonActionPerformed(java.awt.event.ActionEvent
evt) {
double item_price;
String purchase_string;
String num_items_string;
String item_price_string = "";
NumberFormat n = NumberFormat.getCurrencyInstance();
boolean keep_purchasing = true;
while (keep_purchasing) {
try {
item_price_string = JOptionPane.showInputDialog(null,
"Enter Item Price", "Enter Price", JOptionPane.PLAIN_MESSAGE);
if ((item_price_string != null) amp;amp;
(item_price_string.length() > 0)) {
item_price = Double.parseDouble(item_price_string);
recordPurchase(item_price);
purchase_string = n.format(purchase);
num_items_string = Integer.toString(numitems);
Item_Price_Text.setText(n.format(item_price));
Sub_Total_Text.setText(purchase_string);
Num_Items_Text.setText(num_items_string);
} else {
keep_purchasing = false;
Sales_Tax_Text.setText(n.format(purchase * 0.065));
Total_Sale_Text.setText(n.format(purchase purchase
* 0.065));
}
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null, "Your input must be
numeric!", "Bad Data!", JOptionPane.ERROR_MESSAGE);
Item_Price_Text.setText("");
Sub_Total_Text.setText("");
Num_Items_Text.setText("");
Sales_Tax_Text.setText("");
Total_Sale_Text.setText("");
if (item_price_string.isEmpty()) {
return;
}
}
}
Я ожидаю, что все значения будут полностью сброшены после нажатия кнопки сброса или нажатия «ок» из сообщения об ошибке
Комментарии:
1. Хорошо, итак, можете ли вы предоставить немного больше кода?
recordPurchase()
Метод был бы полезен для ответа на ваш вопрос
Ответ №1:
просто добавьте строку purchase = 0;
в свой catch
оператор, и все должно быть в порядке. Возможно, вы захотите, чтобы все хорошо добавили numitems = 0;
в catch
инструкцию.
Комментарии:
1. Добро пожаловать! Просто небольшой совет, когда у вас возникает ошибка внутри класса, опубликуйте весь код класса здесь, нам легче увидеть, что может быть не так. ^^