0 / 0 / 1
Регистрация: 25.12.2016
Сообщений: 108
|
|||||||||||
1 | |||||||||||
Как задать порядок отрисовки компонентов28.06.2018, 15:33. Показов 2874. Ответов 6
Метки нет (Все метки)
Доброго времени суток.
Есть JPanel на которой расположена кнопка и другая дочерняя панель закрашенная красным цветом. Дочерняя панель должна отрисовываться после отрисовки кнопки и закрывать её. Но по каким-то причинам кнопка всегда отрисовывается поверх дочерней панели. Я пробовал повлиять на порядок отрисовки добавляя кнопку и дочернюю панель на панель-контейнер в разной последовательности, а также пробовал использовать метод
Вот код простого примера, где я пытался разместить дочернюю панель над кнопкой:
0
|
28.06.2018, 15:33 | |
Ответы с готовыми решениями:
6
Как задать порядок элементов на форме? Изменение отрисовки компонентов AddSubview порядок отрисовки Порядок отрисовки треугольников |
Am I evil? Yes, I am!
17585 / 10335 / 2823
Регистрация: 21.10.2017
Сообщений: 22,408
|
||||||
28.06.2018, 18:11 | 2 | |||||
Кликните здесь для просмотра всего текста
1
|
0 / 0 / 1
Регистрация: 25.12.2016
Сообщений: 108
|
|
28.06.2018, 19:39 [ТС] | 3 |
Спасибо, iSmokeJC. Но кнопка как раз и не должна быть видна, её должна закрывать красная панель.
0
|
Am I evil? Yes, I am!
17585 / 10335 / 2823
Регистрация: 21.10.2017
Сообщений: 22,408
|
|
28.06.2018, 19:40 | 4 |
setVisible
1
|
0 / 0 / 1
Регистрация: 25.12.2016
Сообщений: 108
|
|
29.06.2018, 08:33 [ТС] | 5 |
А если необходимо, чтобы панель закрывала кнопку частично? Ведь setVisible полностью её скроет.
0
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
29.06.2018, 09:04 | 6 |
Сообщение было отмечено Bakuard как решение
Решение
1
|
0 / 0 / 1
Регистрация: 25.12.2016
Сообщений: 108
|
|
29.06.2018, 12:01 [ТС] | 7 |
Спасибо xoraxax. Я посмотрел варианты предлагаемые в ответах к вопросу на который вы дали ссылку.
Вариант с JLayeredPane не подошел т.к. идея моего примера было создание наследников JPanel, каждй из которых представляет собой панель с множеством кнопок, выпадающих меню, картинками и т.д. Таких панелей несколько. Они могут добавляться в главное окно в произвольном порядке и перекрывать друг-друга со всем содержимым. А распределять отдельно каждую кнопку каждой панели в свой слой JLayeredPane по моему очень неудобно. Вариант с применением метода setComponentZOrder просто не работает. Вариант с применением OverlayLayout не работает как надо. Если панель после добавления и закрывает кнопку, то проведя курсор мыши по панели в том месте где она закрывает кнопку, приводит к тому, что кнопка отрисовывается над панелью. Проблему удалось решить следующим образом: в классе наследнике JPanel переопределяем метод isOptimizedDrawingEnabled так, чтобы он всегда возвращал false. Тогда можно применять setComponentZOrder или add(Component comp, int index) и они будут работать как надо.
0
|
29.06.2018, 12:01 | |
29.06.2018, 12:01 | |
Помогаю со студенческими работами здесь
7
Как установить порядок отображения компонентов на форме? Как задать порядок материала Как задать шрифт по умолчанию для всех компонентов Порядок контролов на форме/фрейме (как его задать) Как задать порядок сортировки в ленточной форме, используя код программы??? Порядок создания компонентов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |