Tenho um jPanelPrincipal setado com layout dessa forma:
Ou seja um grid com uma coluna. Inseri nele, mais 4 jPanels, um abaixo do outro. Porém eles ficam do mesmo tamanho e gostaria que os 2 primeiros fiacssem menores que os 2 de baixo.
Aí tentei setar o setPreferredSize, e setSize e todos os possíveis para ver se eles ficavam do tamanho desejado, mas não deu.
Alguém poderia me dar uma sugestão de como organizar esses panel da forma que eu desejo?
Bom dia BrunoLeo,
Procure dar uma olhada no GridBagLayout, pois este é mais flexível quanto ao arranjo dos componentes dentro dele. Porém ele é um pouco mais chato de trabalhar .
este é um exemplo que está na API:
importjava.awt.*;importjava.util.*;importjava.applet.Applet;publicclassGridBagEx1extendsApplet{protectedvoidmakebutton(Stringname,GridBagLayoutgridbag,GridBagConstraintsc){Buttonbutton=newButton(name);gridbag.setConstraints(button,c);add(button);}publicvoidinit(){GridBagLayoutgridbag=newGridBagLayout();GridBagConstraintsc=newGridBagConstraints();setFont(newFont("SansSerif",Font.PLAIN,14));setLayout(gridbag);c.fill=GridBagConstraints.BOTH;c.weightx=1.0;makebutton("Button1",gridbag,c);makebutton("Button2",gridbag,c);makebutton("Button3",gridbag,c);c.gridwidth=GridBagConstraints.REMAINDER;//end rowmakebutton("Button4",gridbag,c);c.weightx=0.0;//reset to the defaultmakebutton("Button5",gridbag,c);//another rowc.gridwidth=GridBagConstraints.RELATIVE;//next-to-last in rowmakebutton("Button6",gridbag,c);c.gridwidth=GridBagConstraints.REMAINDER;//end rowmakebutton("Button7",gridbag,c);c.gridwidth=1;//reset to the defaultc.gridheight=2;c.weighty=1.0;makebutton("Button8",gridbag,c);c.weighty=0.0;//reset to the defaultc.gridwidth=GridBagConstraints.REMAINDER;//end rowc.gridheight=1;//reset to the defaultmakebutton("Button9",gridbag,c);makebutton("Button10",gridbag,c);setSize(300,100);}publicstaticvoidmain(Stringargs[]){Framef=newFrame("GridBag Layout Example");GridBagEx1ex1=newGridBagEx1();ex1.init();f.add("Center",ex1);f.pack();f.setSize(f.getPreferredSize());f.show();}}