@ideas4ru

Java: Взаимодействие графического интерфейса с сетевым модулем

Добрый день,

Для изучения Явы решил написать сетевую игру с клиентской и серверной частью. Клиент грубо говоря состоит из двух классов: Connection, UserInterface. Пока UserInterface был чисто консольный все было замечательно.

command = userInterface.getCommand(); //блокирующий вызов
sendToServer(command);

где внутри getCommand стоит System.in.read();

Теперь я меняю консольный интерфейс на графический на основе Swing и хочу похоже вызывать
command = userInterface.getCommand();

но ситуация теперь другая. getCommand() должна вернуть только, когда пользователь сгенерирует событие мышью или клавиатурой.

В этой связи мне не очень понятно, как можно реализовать функцию getCommand.

Приветсвтуются любые предложения, ссылка на что почитать.

Спасибо
  • Вопрос задан
  • 3138 просмотров
Пригласить эксперта
Ответы на вопрос 2
@dzigoro
Все в порядке, только getCommand должна вызываться в SwingWorker. Почитайте тут. Смысл в том, чтобы все хоть сколько-либо длинные операции выполнять в отдельном потоке, не блокируя UI.
Ответ написан
BrightGenie
@BrightGenie
добавь своему свинг объекту MouseListener и KeyListener. и в результате нужных сочетаний клавиш клавиатуры или на mouseReleased вызывай sendToServer(command)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы