|
|
|
Swing, почему диалог создаётся только после фрейма?
|
|||
|---|---|---|---|
|
#18+
Проблема: элементы диалога (JLabel-ы), прорисовываются только после создания фрейма! Вопрос: почему так происходит и как это исправить? Имеет место приблизительно такой код (просто он разнесен на несколько функций и файлов поэтому только концепт представлен): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 12:33:04 |
|
||
|
Swing, почему диалог создаётся только после фрейма?
|
|||
|---|---|---|---|
|
#18+
Диалоговое окно, как я понимаю, не является самостоятельным, у него есть родитель - базовый Frame. Ну и пусть себе, ведь диалоговое, модальное окно для выдачи сообщений, а не для выполнения основной работы. Может и не стоит исправлять? У Моргана (старая книга Java2) я позаимствовал идею работы диалога в виде синглтон'а. Очень удобно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 13:32:50 |
|
||
|
Swing, почему диалог создаётся только после фрейма?
|
|||
|---|---|---|---|
|
#18+
Когда в конструкторе frame=null, то диалоговое окно само создает его. Но соль не в этом, пусть я сам создам фрейм, при создании 2ого фрейма, в коде MainProgramm(), будет все тоже самое. Основная работа лежит на Mainprogramm, он может долго загружаться и надо диалог ожидания выводить. диалог этот ожидания нужен не только там, пробовал внутри самого фрейма при выполнении "длительного" Action-a, та же батва. Свинг только создаёт диалог без всех внутренних компонентов, сами внутренние компоненты создаются по завершении выполнения Action-a Может тут дело в очереди свинг-а? Как обойти это, или если можно то другой пример диалога ожидания... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 14:01:33 |
|
||
|
Swing, почему диалог создаётся только после фрейма?
|
|||
|---|---|---|---|
|
#18+
Попробовал использовать AWT фрейм (вместо диалога), JLabel не добавлялся ка и раньше, поставил просто Label - прекрастно добавился, но в нём нельзя поставить иконку. Перегрузил метод paint(), картинка грузиться только после фрейма... т.о. всё дело в гиф-е. Отсюда вопросы: 1. Загружал gif ImageIcon-ом, гиф анимированный, есть ли замена свинговскому, какая? 2. Может можно что-то подправить в самом свинге? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 15:29:22 |
|
||
|
Swing, почему диалог создаётся только после фрейма?
|
|||
|---|---|---|---|
|
#18+
Потому что диалог не успел прорисоваться. Нужно его открывать в другом потоке. Или дать ему прорисоваться, а через некоторое время, напр. полсекунды, открыть главный фрейм. Вот два способа: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Можно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 16:53:53 |
|
||
|
Swing, почему диалог создаётся только после фрейма?
|
|||
|---|---|---|---|
|
#18+
Первый способ не помог: и фрейм и диалог появлялись одновременно (обычно фрейм секунды на 3 позже открывается чем диалог)... Второй способ: я такое уже пробовал, dialog.setVisible(true) в отдельном потоке, а задержку ставил -Thread.sleep(10000) Придется переходить на псевдографику и авт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 17:34:17 |
|
||
|
Swing, почему диалог создаётся только после фрейма?
|
|||
|---|---|---|---|
|
#18+
автор Первый способ не помог: и фрейм и диалог появлялись одновременно (обычно фрейм секунды на 3 позже открывается чем диалог)... Второй способ: я такое уже пробовал, dialog.setVisible(true) в отдельном потоке, а задержку ставил -Thread.sleep(10000) В первом случае после invokeLater поставь Thread.sleep(1000); А второй способ попробуй именно через таймер, он работает стабильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 17:40:49 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34203092&tid=2147185]: |
0ms |
get settings: |
18ms |
get forum list: |
24ms |
check forum access: |
8ms |
check topic access: |
8ms |
track hit: |
57ms |
get topic data: |
22ms |
get forum data: |
5ms |
get page messages: |
84ms |
get tp. blocked users: |
3ms |
| others: | 299ms |
| total: | 528ms |

| 0 / 0 |
