Изменение и изменение размеров панелей во время выполнения

У меня есть класс PanelTrial расширяет JPanel & реализует GroupLayout. В нем у меня есть JTabbedPane, а именно jTabbedPane слева и еще одна JPanel, а именно rightPanel справа. В rightPanel я загружаю 2 панели (а именно compoPanel, btnsPanel) альтернативно во время выполнения.

Моя проблема: ширина compoPanel, btnsPanel отличается (и я хочу, чтобы она была другой). Первоначально compoPanel (который больше в W) загружается в правой панели. Я ищу, когда я загружаю btnsPanel в rightPanel, я хочу, чтобы размер jTabbedPane увеличился и занял все свободное место. Я обновляю PreferredSize jTabbedPane & rightPanel - и их размеры также меняются. НО расположение rightPanel не перемещается в крайнее правое положение - это находится в середине jTabbedPane.

Вот код, который я использую:

    orgTabDimen = new Dimension(350, 600);
    newTabDimen = new Dimension(500, 600);
    orgRghtDimen = new Dimension(280, 574);
    newRghtDimen = new Dimension(50, 574);

private void updateRightPanel(boolean showBtnPanel) {
    rightPanel.removeAll();

    GroupLayout layout = (GroupLayout) rightPanel.getLayout();

                if (showBtnPanel) {
                           // SHOW BTNSpANEL
        layout.setHorizontalGroup(layout.createSequentialGroup()
                .addComponent(btnPanel));
        layout.setVerticalGroup(layout.createParallelGroup(
                Alignment.TRAILING).addComponent(btnPanel));

                           // Set respective dimesions
        rightPanel.setPreferredSize(newRghtDimen);
        this.jTabbedPane1.setPreferredSize(newTabDimen);
    } else {
                           // SHOW COMPOpANEL
        layout.setHorizontalGroup(layout.createSequentialGroup()
                .addComponent(compoPanel));
        layout.setVerticalGroup(layout.createParallelGroup(
                Alignment.TRAILING).addComponent(compoPanel));

        rightPanel.setPreferredSize(orgRghtDimen);
        this.jTabbedPane1.setPreferredSize(orgTabDimen);
    }

    jPanel1.validate();
    this.validate();
}

Может кто-нибудь помочь мне решить эту проблему - я застрял здесь. Не могу найти способ, где btnsPanel появляется справа. Я даже пытался вызвать invalidate(), но это также не помогло мне.

Любая помощь очень признательна.

Спасибо

0 ответов

Другие вопросы по тегам