문제

I have a class PanelTrial extends JPanel & implements GroupLayout. In it, I have a JTabbedPane namely jTabbedPane on left & another JPanel namely rightPanel on right. In rightPanel, I load 2 panels (namely compoPanel, btnsPanel) alternatively during runtime.

My Issue : Width of compoPanel, btnsPanel is different (and I want it to be different). Initially compoPanel (that is bigger in W) is loaded in the rightPanel. I am looking for is, when I load btnsPanel in rightPanel, I want the jTabbedPane's size to increase and occupy all free space. I update the PreferredSize of jTabbedPane & rightPanel - and their sizes also change. BUT location of rightPanel doesn't move to extreme right - this makes it in the middle of jTabbedPane.

Here is the code that I use :

    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();
}

Can anyone help me solve this issue - am stuck up here. Can't figure out a way where the btnsPanel shows up on extreme right. I even tried with calling invalidate(), but that also didn't help me.

Any help is highly appreciative.

Thanks

올바른 솔루션이 없습니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top