2010-01-29 2 views
2

У меня есть каркас для покера, для которого я пытаюсь создать «игрока». В основном я реализую объект, который реализует интерфейс Player, определенный каркасом. Я пытаюсь поставить графический интерфейс поверх этого проигрывателя, как работает игра, заключается в том, что Дилер вызывает метод act() на моем плеере и ожидает тип возврата Action. Проблема заключается в том, что после вызова метода act() я обновляю GUI (написанный с помощью Swing), чтобы отобразить доступные параметры, однако теперь мне нужен метод NOT, чтобы вернуться, пока игрок не выбрал вариант. Параметры отображаются как JButtons, которые при нажатии обрабатываются объектом actionListener. Как я могу заставить метод act() не возвращаться до тех пор, пока пользователь не подействует? Мне нужен поток, чтобы спать/ждать, пока он не проснулся от запуска события, я не уверен в синтаксисе и лучший способ сделать это. Есть идеи?Метод сна до события

Спасибо,

Aly

ответ

2

Я думаю, что этот подход является ошибочным. Метод Act не должен ждать. Вместо этого он должен зарегистрироваться для события (давайте назовем это событие Acted) на примере Player. В то же время он должен запустить таймер, скажем, 20 секунд, и если событие Acted не будет поднято до истечения таймера, дилер должен сделать плеер сбрасывать (или проверять в зависимости от ситуации) автоматически и делать то же самое для следующего игрока в очереди.

Это как раз у меня на голове, но подумайте об этом.

+0

Используя этот метод дилер будет нужен способ, чтобы предупредить игрока, их очередь действовать, если этот метод оленья кожа вернется тогда игроки будут тогда нужна ссылка на Дилера, так что они могут отправить действие, выполненное Дилеру. Это создало бы циклические зависимости между нашими объектами – Aly

1

Если я обнаружил ваш ploblem, вам необходимо использовать ActionListener.

ActionListener - это интерфейс, реализованный в классе, который вы хотите предупредить при возникновении события. Когда определенное событие запускается в другой части вашего кода, этот класс предупреждается абстрактным методом интерфейса Action Listener.

Непросто показать вам короткий ответ, но я получил приветственный пример мира, который может вам помочь.

http://java.sun.com/docs/books/tutorial/uiswing/events/actionlistener.html

Е.И.В.

Смежные вопросы