Страница 1 из 1

Доступ к GUI из другого потока

Добавлено: 23 окт 2014, 13:10
Realist
Есть программа на Java под Windows - нужно раз в минуту читать буфер обмена и выводить данные в текстовое поле. Отсюда вопрос - есть ли в Java такие механизмы вроде AsyncTask, которые выполняют код в отдельном потоке и по его окончании вызывают метод в главном потоке. Или может что то наподобие BroadcastReceiver..

Re: Доступ к GUI из другого потока

Добавлено: 23 окт 2014, 13:30
KamiSempai
Создаете Handler в UI потоке и все сообщения отправленные в него будут выполнены в UI потоке. По такому же принципу работает AsyncTask.

Re: Доступ к GUI из другого потока

Добавлено: 23 окт 2014, 13:42
Mikhail_dev
Денис, написано же, в Java, т.е. в чистой Java.
Есть такое, но с ходу не вспомню что именно.

Re: Доступ к GUI из другого потока

Добавлено: 23 окт 2014, 14:15
Realist
Разве что запустить Callable через ExecutorService..Но метод get судя по всему заблокирует главный поток. Вечером попробую.

Re: Доступ к GUI из другого потока

Добавлено: 23 окт 2014, 16:55
KamiSempai
Mikhail_dev писал(а):Денис, написано же, в Java, т.е. в чистой Java.
Есть такое, но с ходу не вспомню что именно.
Действительно, почему-то мне казалось, что это к Java относится.

Тогда нужно разбираться в работе самого GUI. В нем обязательно должны быть методы по выполнению кода в UI потоке.
Если используете Swing то вот этот, вроде, должен подойти: http://docs.oracle.com/javase/7/docs/ap ... .Runnable)

Re: Доступ к GUI из другого потока

Добавлено: 23 окт 2014, 19:11
Realist
Ну и совсем нубский вопрос - как эти данные вывести хотя бы в консоль? System.out.println() консоль почему то не открывает..
Update: Понял=) Jar был ассоциирован с javaw.exe=)