java在运行时更改和调整面板大小
我有一个班,JPanel&;实现GroupLayout。在其中,我有一个JTabbedPane,即左&;另一个JPanel就是右边的右面板。在rightPanel中,我在运行时交替加载2个面板(即compoPanel、btnsPanel)
我的问题:复合面板的宽度,btnsPanel是不同的(我希望它是不同的)。最初,compospanel(在W中较大)加载到右侧面板中。我要寻找的是,当我在右面板中加载btnsPanel时,我希望jTabbedPane的大小增加并占用所有可用空间。我更新jTabbedPane的首选大小&;右面板-它们的大小也会改变。但是RealPad的位置没有移动到极右——这使得它位于JTabDeBeNe的中间。
以下是我使用的代码:
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) 个答案