Ожидание пользовательского ввода в JApplet из другого класса

#java #swing #applet #user-input #japplet

#java #swing #апплет #пользовательский ввод #japplet

Вопрос:

У меня есть два класса. Один создает графический JApplet интерфейс, а другой класс принимает пользовательский ввод из апплета и выполняет с ним вычисления.

Класс applet создает графический интерфейс и сообщает классу вычислений о запуске. Затем класс вычислений вызывает метод из класса applet, чтобы запросить пользовательский ввод. Затем этот метод прослушивает действие от a JTextField для возврата к классу вычислений.

Но проблема в том, что когда вы запускаете программу, она фактически не ждет, пока пользователь введет что-то в текстовое поле. В результате класс вычислений получает нулевой ввод.

Как я могу это исправить?

Я попытался использовать a JOptionPane.showInputDialog вместо an ActionListener в методе, и это работает. Но я не хочу использовать это; в основном потому, что это похоже на всплывающее окно, и я хочу, чтобы пользователь вводил данные непосредственно в апплет.

Комментарии:

1. КСТАТИ, 1) Для более быстрой помощи опубликуйте SSCCE . 2) 1 для (re. JOptionPane ) «Но я не хочу это использовать; в основном потому, что это похоже на всплывающее окно ..»

Ответ №1:

Добавьте ActionListener JTextField в апплет. При запуске события (обычно, когда пользователь нажимает «Ввод») вызовите класс вычислений, используя String в текстовом поле.

Или, говоря по-другому. Класс, который является источником события (апплет), должен вызвать метод класса вычислений. Это не должно быть наоборот.