2013-04-07 2 views
0

Я пытаюсь отправлять сообщения с JMS в GUI Swing. Когда я создаю поток для JMS, поэтому Swing заморозит, но сообщения отправляются правильно (по протоколу JBOSS), но это непригодно. Мне нужно установить некоторые параметры для объекта Chat из Swing. Как я могу создать экземпляр класса чата (с помощью JMS-методов) в Swing, который работает независимо от Swing и сотрудничает?Java-потоки в GUI с JMS

+1

Использование SwingWorker – Reimeus

+0

Я не рекомендую использовать JMS для приложения чата, если это то, что ваше здание. XMPP aka jabber будет лучшим решением, и я считаю, что openfire поставляется с клиентом swing. –

ответ

1

Вы блокируете событие Dispatch Thread, поэтому Swing замерзает. Прочтите раздел из руководства Swing по телефону Concurrency in Swing для получения дополнительной информации.

Как уже было рекомендовано, вы, вероятно, должны использовать SwingWorker, что обсуждается в учебнике.

+0

Да, спасибо, SwingWorker отлично работает, но я не могу обрабатывать JMS с Swing. Любое решение? – rbrisuda

+0

Я не знаю, что такое JMS, но я предполагаю, что это просто API. Так вот в чем смысл использования рабочего Swing, который на самом деле просто другой Thread. Весь код, связанный с JMS, помещается в рабочего. Его просто код Java и не относится к Swing. – camickr

+0

Да, у меня есть JMS-код в рабочем месте, но мне нужно сделать что-то вроде: Чат - это класс, связанный с JMS. В классе swing: Chat c = new Chat(); c.setTextArea (textarea); c.setMessage ("Message"); Но объект Chat имеет в строковом сообщении все еще null, а не «Message». – rbrisuda

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