|
|
|
Несколько слоев в JFrame
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Совсем не могу решить задачу. Есть такой код: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. Он создает JFrame frame. Затем он создает JPanel panel с диспетчером CardLayout, в которую он кладет сначала один элемент DrawPanel, затем другой. Они являются внутренними классами классов Axis и Grid, так что реализация методов paintComponent(Graphics g) у них разная. После этого panel кладется во frame. frame делается видимым. Последние две строчки, вроде как, должны заставить сначала прорисоваться первый DrawPanel, а затем второй. Но рисуется только второй, первого я не вижу. Могу с уверенностью сказать, что он даже не начинает отрисовку, потому как я добавил отладочный вывод в paintComponent'ах. Рисовка первой панели ("grid") выводит "draw1", а рисовка второй ("axis") - "draw2". И вот в консоли я вижу только строку "draw2". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2013, 20:13:03 |
|
||
|
Несколько слоев в JFrame
|
|||
|---|---|---|---|
|
#18+
Весь GUI однопоточный. Сначала отрабатывает cardLayout.show(panel, "grid"); потом cardLayout.show(panel, "axis"); потом отрисовка. Отрисовка рисует актуальное состояние. Смысл ей рисовать то что уже не нужно? Оберните каждый метод в SwingUtils.invokeLater() или привяжите к кнопке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2013, 20:16:51 |
|
||
|
|

start [/forum/topic.php?fid=59&gotonew=1&tid=2128910]: |
0ms |
get settings: |
12ms |
get forum list: |
23ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
55ms |
get topic data: |
18ms |
get first new msg: |
11ms |
get forum data: |
4ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 289ms |
| total: | 485ms |

| 0 / 0 |
