| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: GUI и Java FX приложения > Компонент поверх компонента |
| Автор: Keyo 16.10.2008, 23:08 |
| Вот тут есть похожая тема http://forum.vingrad.ru/forum/topic-232422.html Но у меня проблема в том что если один компонент, с альфа бэкграундом, полностью перекрывает другой, то тот другой вовсе не прорисовывается, однако если верхний компонент не перекрывает хотя бы полоску в 1px, то нижний отрисовывается. Собственно вопрос - как можно заставить нижний компонент прорисовываться, даже если он перекрыт полностью? |
| Автор: dorogoyIV 17.10.2008, 12:45 | ||
|
| Автор: Keyo 17.10.2008, 16:35 | ||
| В конце концов сделал так... У компонента
Почему-то сразу не догадался что главное setOpaque(false); иначе все равно компонент находящийся под данным, прорисовываться не будет. |
| Автор: dorogoyIV 17.10.2008, 16:49 |
| я немного не догоняю - для чего блок try{...}... в методе paint(... |
| Автор: Keyo 17.10.2008, 17:23 |
| dorogoyIV, g.dispose(); Высвобождает ресурсы... так? В случае если не будет блока try finally и если произойдет исключение, то соответственно dispose не выполнится, в том случае конечно если исключение не было перехвачено в методе. Поэтому try/finally гарантирует что dispose() выполнится |
| Автор: dorogoyIV 18.10.2008, 15:21 |
| ок. это я недовысказал свою мысль - по моему убеждению - в методе paint/paintComponent должна происходить только перерисовка, и ничего более. если нужно ловить Exception, то лови его в каком нибудь другом методе... хотя ошибки в твоем коде вроде нет |
| Автор: Keyo 18.10.2008, 15:44 |
| dorogoyIV, дык я не ловлю там эксепшн try/finally гарантирует что выполнится метод dispose() объекта типа Graphics в свою очередь это как-то гарантирует высвобождение ресурсов, что по идее делает dispose(), хотя конечно это не обязательно, по скольку автоматический сборщик мусора... Но в то же время всем известно что он работает не совсем предсказуемо... поэтому и... |
| Автор: dorogoyIV 18.10.2008, 16:25 |
| я все же думаю, что это лишнее. ну в общем суть не меняется |