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

Ответить
Realist
Сообщения: 134
Зарегистрирован: 08 фев 2014, 18:15

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

Сообщение Realist » 23 окт 2014, 13:10

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

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

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

Сообщение KamiSempai » 23 окт 2014, 13:30

Создаете Handler в UI потоке и все сообщения отправленные в него будут выполнены в UI потоке. По такому же принципу работает AsyncTask.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

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

Сообщение Mikhail_dev » 23 окт 2014, 13:42

Денис, написано же, в Java, т.е. в чистой Java.
Есть такое, но с ходу не вспомню что именно.

Realist
Сообщения: 134
Зарегистрирован: 08 фев 2014, 18:15

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

Сообщение Realist » 23 окт 2014, 14:15

Разве что запустить Callable через ExecutorService..Но метод get судя по всему заблокирует главный поток. Вечером попробую.

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

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

Сообщение KamiSempai » 23 окт 2014, 16:55

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

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

Realist
Сообщения: 134
Зарегистрирован: 08 фев 2014, 18:15

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

Сообщение Realist » 23 окт 2014, 19:11

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

Ответить