Вот в чем дело ...
У меня есть 2 программы с графическим интерфейсом.
Программа меню, которая в основном представляет собой рамку с кнопками продуктов питания, кнопки при нажатии открывают эту другую программу, вводКоличество Программа, которая представляет собой рамку с текстовым полем, кнопки для цифр, кнопки для отмены и подтверждения.К количеству, подтвержденному пользователем, будет обращаться программа меню из программы «Ввод количества» для сохранения в векторе, так что каждый раз, когда пользователь хочет заказать другие продукты питания, он просто нажимает другую кнопку и повторяет процесс.
Теперь я закодировал большую часть и получил все работоспособное, кроме одной вещи, значение, возвращаемое программой ввода количества, имеет эту задержку.
Это то, что я делаю шаг за шагом:
1) Щелкните элемент питания в меню, откроется окно «Количество ввода».
2) Я ввожу нужное число, оноотображается в текстовом поле корректно.
3) Я нажал подтвердить, что будет делать 3 вещи, во-первых, он сохраняет значение текстового поля в переменной, во-вторых, он вызовет метод dispose () и в-третьих, оператор печати, показывающийзначение переменной (для целей тестирования).
4) Затем программа меню проверяет, нажал ли пользователь кнопку «Подтвердить» в программе ввода, если «истина», то он вызовет метод в программе ввода с именем getQuantity (), которыйвозвращает значение переменной «количество» и сохраняет его в векторе.
5) После чего выполняет другой оператор печати, чтобы проверить правильность переданного значения, а затем вызывает метод print () для отображения имени упорядоченного элемента иэто записанное количество.
Вот скриншоты графического интерфейса и код будет ниже.
![MENU GUI](https://i.stack.imgur.com/sTzph.png)
![last order](https://i.stack.imgur.com/BYrWB.png)
ActionPerformed метод ПОДТВЕРЖДЕНИЯКНОПКА в Программе ввода количества:
private void ConfirmButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
confirmed = true;
q= textField.getText().toString();
quantity =Integer.parseInt(q) ;
System.out.println("getQTY method inside Input Quantity Interface:" +getQuantity());
System.out.println("Quantity from confirmButton in Input Quantity Interface actionPerformed: "+quantity);
//getQuantity();
}
КЛАСС ДЕЙСТВИТЕЛЬНОГО ДЕЙСТВИЯ КНОПКИ ПУНКТА МЕНЮ в ПРОГРАММЕ МЕНЮ, которая выполняет шаг 2 выше:
class f implements ActionListener {
@Override
public void actionPerformed(ActionEvent e)
{
inputGUI.setVisible(true);
int q =0;
q=inputGUI.getQuantity(); //call method to get value from Input Program
System.out.println("Quantity inside Menu actionperformed from AskQuantity interface: "+q);
orderedQuantity.add(q); //int vector
textArea.append("\n"+e.getActionCommand()+"\t"+ q);
orderedItems.add(e.getActionCommand()); //String vector
print();
/*
System.out.println("Enter QTY: ");
int qty = in.nextInt();
orderedQuantity.add(qty);
print();*/
}
Вот скриншоты операторов печати вконсоль:
Здесь я сначала заказал Тыквенный суп, я ввел количество 1
Здесь я заказал маринару из морепродуктов и ввел количество 2
![2nd order](https://i.stack.imgur.com/OoSiZ.jpg)
Здесь я заказал последний товар, обжаренный на сковороде лосось и ввел количество 3
Как видно, первое записанное количество равно 0 для первого изделия Iзатем заказывается, когда я добавляю другой элемент, записывается количество первого элемента, но количество 2-го элемента не записывается .. то же самое идет после третьего элемента ... и количество 3-го элемента не записывается, даже если программа завершается:(
Как мне решить эту проблему?