Платежный калькулятор не сбрасывается должным образом

#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. Добро пожаловать! Просто небольшой совет, когда у вас возникает ошибка внутри класса, опубликуйте весь код класса здесь, нам легче увидеть, что может быть не так. ^^