有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案