Создаю программу для случайных процессов (таких 2 + 2, 14/2 и т. Д.).Ждите слушателя в do ... while GUI
Я пытаюсь создать графический интерфейс. У меня есть 5 кнопок (Добавить для Add, отд для разделяй и т.д.) Когда пользователь нажимает на кнопку Add я отправить сообщение для JTextArea, чтобы добавить сообщение:
2 + 4 =
(или других случайных чисел)
У меня есть JTextField, который пользователь может написать ответ. Так что, если он написал 6 появляется сообщение об успешном выполнении в JText области (то же самое, если он поставил неправильный ответ, но сообщение об ошибке) и 2 других случайных чисел тоже так:
2 + 4 = 6
Да!
3 + 4 =
И продолжается до тех пор метод c.isOverLimit() не возвращает истину (После 10 процессов).
int x = 10;
do {
String string = String.format("%d %s %d =", p.getNumber1(),
p.getOperator(), p.getNumber2());
writeMessage(string);
textField.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
p.checkAnswer(Double.parseDouble(e.getActionCommand()));
writeMessage(p.getMessage(Double.parseDouble(
e.getActionCommand())));
textField.setText("");
}
catch(Exception ex) {
System.out.println(ex.getMessage());
}
}
}
);
c = Proccess.getCounter();
x--;
}
while (x != 0);
Моя проблема заключается в том, что, когда я нажать на кнопку Добавить у меня есть этот выход:
4 + 3 =
4 + 3 =
4 + 3 =
4 + 3 =
4 + 3 =
4 + 3 =
4 + 3 =
4 + 3 =
4 + 3 =
4 + 3 =
неправильный в том, что делать .. .while работает 10 раз и не останавливается на ответах пользователя. Dont обратите внимание на методы, которые я использую. Моя программа работает правильно в консольной программе, так что моя ошибка в то время как ... do
Извините за мой английский. Спасибо!
Кажется, вы не понимаете, как работают события. Почему вы добавляете один и тот же прослушиватель 10 раз в текстовое поле? Вам не нужно ждать слушателя. Слушатель вызывается Swing, когда пользователь нажимает кнопку ввода в текстовое поле. –