Задать вопрос

Как наложить jPanel друг на друга, NetBeans?

Привет.
Вообщем хочется реализовать что-то типо такого:
272aca25dd324c198f9c9226bc00f18e.jpg
Ход мыслей таков:
Слева использую jList, и обрабатываю выбор из списка, при этом справа есть много наложенных друг на друга панелей и в зависимости от выбора одна из них переходит на передний план. Вот только как эти панели "наложить", потому что при добавлении на фрейм они либо вкладываются друг в друга или раздвигаются по фрейму?
Возможно есть другое решение такой проблемы?
  • Вопрос задан
  • 3305 просмотров
Подписаться 4 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@aobiedkov Автор вопроса
java
С панелями разобрался, они накладываются друг на друга по умолчанию, просто сам NetBeans их раздвигает, если размеры написать в коде то все ок, использовал jLayeredPane. Теперь возник следующий вопрос:
При выборе из списка jList элемента в начале для всех jPane на нем layer устанавливается в 0, а для выбранного он устанавливается в 1:
private void resetPosition(){
        Component[] panels = jLayeredPane1.getComponents();
        for (Component panel:panels){
                jLayeredPane1.setLayer(panel, 0);
            } 
    }

Панели меняются местами, все хорошо, только вот если на 1й панеле есть элемент enable=true и эта панель находится на заднем фоне, то при проведении мышкой на том месте где этот элемент находится он проявляется на вторую панель, можно при перекрытии панелей всем элементам задних панелей делать enable=false, но почему-то кажется что меня не туда понесло.
Вот пример как это выглядит, это 1я панель на переднем фронте:
cffc999a3f99450381fce3cefa164f9c.jpg
это 2я панель сразу при ее выборе:
2c99b12fc0564884a7d6dd37865d0667.jpg
а вот 2я панель если поездить мышкой на месте кнопки и комбо-бокса:
fda28b359c2e4462b783cb8e6e1f2e86.jpg
Как решить эту проблему?
Ответ написан
Комментировать
silverhawk90
@silverhawk90
Серверный Java Developer
попробуйте либо при каждом изменении видимости слоя делать jlayeredpane.updateUI(), либо вместо JLayeredPane использовать обычный JPanel, и при каждом клике на элемент в JList удалять все компоненты с JPanel, затем добавлять все нужные компоненты и jpanel.updateUI().
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы