Изменение и изменение размеров панелей во время выполнения
У меня есть класс 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(), но это также не помогло мне.
Любая помощь очень признательна.
Спасибо