GUI / связь с приложением - PullRequest
0 голосов
/ 31 июля 2011

Каков наилучший способ обработки интерфейса графического интерфейса пользователя / приложения? У меня есть много базовых потоков, обрабатывающих данные, и я хотел бы опубликовать их вывод в графический интерфейс.

Должен ли я иметь какой-то объект-обработчик, который принадлежит всем моим исполняемым файлам, и затем отправить их на него, чтобы он мог обработать вывод в графический интерфейс?

Ответы [ 2 ]

2 голосов
/ 31 июля 2011

Я обычно использую шаблон наблюдателя для такого рода связи. Таким образом, в основном ваши классы потоков реализуют общий интерфейс (addObserver ()), делающий их наблюдаемыми, а ваш контроллер GUI / представление реализует интерфейс наблюдателя (fireNewEvent ()). Если поток создал какой-то новый контент, он вызывает метод для наблюдателя. В зависимости от вашего проекта представляемая информация может быть выдвинута наблюдателю (например, fireNewEvent (событие e)), или наблюдатель может получить доступ к информации самостоятельно ( pull ). По сути, это ваша идея плюс гибкость уведомления более чем одного наблюдателя (при необходимости).

0 голосов
/ 31 июля 2011

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

...