![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| goodday1941 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 709 Регистрация: 16.7.2006 Где: Украина, Киев Репутация: 8 Всего: 9 |
если опциональное окошко вызываеться не в мейн триде, то трид после отображения опционального окошка слипается, почему?
если например есть метод: public void doSomesing(){ System.out.println(1); JOptionPane.showInternalOptionDialog(/*параметры*/); System.out.println(2); } и мы его вызываем с другого трида, то в стектрейсе отрисуеться еденичка, а после работы с опциональной формой и ее закрытием, двоечка не отрисуеться :( где моя ошибка? PS. Все проверялось с помощью JConsole. PPS. Такая ситуация наблюдаеться только в Internal опциональных диалогах. -------------------- SCJP 6 |
|||
|
||||
| goodday1941 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 709 Регистрация: 16.7.2006 Где: Украина, Киев Репутация: 8 Всего: 9 |
Вот пример который это демонстрирует:
Добавлено через 3 минуты и 53 секунды хотя и без создания трида не работает :( как сделать так что бы вывелась последняя строка в методе? Это сообщение отредактировал(а) goodday1941 - 20.11.2007, 19:07 -------------------- SCJP 6 |
|||
|
||||
| fixxer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 14.9.2006 Где: Саратов, Россия Репутация: 15 Всего: 27 |
Отучаемся работать со Swing из других потоков.
-------------------- ![]() |
|||
|
||||
| fixxer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 14.9.2006 Где: Саратов, Россия Репутация: 15 Всего: 27 |
Беру слова обратно. Не понял сначала проблему.
там скорее всего дело в том как делается модальность. вызывается через рефлекшн приватный метод startLWModal класса Container. но вызов stopLWModal я не нашел. Это сообщение отредактировал(а) fixxer - 20.11.2007, 19:46 -------------------- ![]() |
|||
|
||||
| goodday1941 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 709 Регистрация: 16.7.2006 Где: Украина, Киев Репутация: 8 Всего: 9 |
в Вашем примере тоже второй систем аут не сработает?
Добавлено через 10 минут и 33 секунды так с систем аутами все пучком, да и в jconsol'e вроде зависшие триды не висят.. думаю все что мне нужно было этот вариант решает -------------------- SCJP 6 |
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 4 Всего: 43 |
Это вы погорячились. Только в конструкции SwingUtilities.invokeLater... это и работает. А обычные, не Internal, работают везде. |
|||
|
||||
| fixxer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 14.9.2006 Где: Саратов, Россия Репутация: 15 Всего: 27 |
Да. Все понятно. JOptionPane.showInternal... безопасно вызывать только из EventDispatchThread. Вопрос лишь в том, хотим ли мы чтобы поток (не ЕventDispatchThread) приостановился до закрытия диалога или нет. Что меня и смутило. В зависимости от этого нужно использовать либо invokeLater либо invokeAndWait.
Смотрите разницу:
Это сообщение отредактировал(а) fixxer - 20.11.2007, 22:12 -------------------- ![]() |
|||
|
||||
| goodday1941 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 709 Регистрация: 16.7.2006 Где: Украина, Киев Репутация: 8 Всего: 9 |
супер
-------------------- SCJP 6 |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |