我有一个带有 GridLayout(3,0)的框架。这3行有3个不同的面板。
面板-1:
面板-2:(BoxLayout.Y_AXIS)
面板-3:
如图所示,我为每个面板提供了不同的背景颜色。
我的目标是减少每个JPanel的大小以适应内容。
代码:
private static JFrame f;
private static JPanel p1,p2,p3;
private static JPanel rbtf[];
private static ButtonGroup bg;
private static JRadioButton jb[];
private static JTextField tf[];
private static JTextArea qtn;
private static JScrollPane sp;
private static JButton submitbtn,nextbtn,prevbtn;
public static void build(JFrame frame){
f=frame;
f.setLayout(new GridLayout(3, 0));
p1=new JPanel();
p1.setSize(600, 100);
p1.setBackground(Color.BLUE);
p2=new JPanel();
p2.setLayout(new BoxLayout(p2,BoxLayout.Y_AXIS));
p2.setSize(600, 200);
p2.setBackground(Color.RED);
p3=new JPanel();
p3.setBackground(Color.RED);
p3.setSize(600, 100);
rbtf=new JPanel[4];
jb=new JRadioButton[4];
bg=new ButtonGroup();
tf=new JTextField[4];
qtn=new JTextArea(3,45);
sp=new JScrollPane(qtn);
p1.add(sp);
for(int i=0;i<4;i++){
jb[i]=new JRadioButton();
tf[i]=new JTextField(10);
rbtf[i]=new JPanel();
rbtf[i].setLayout(new FlowLayout());
rbtf[i].setBackground(Color.GRAY);
bg.add(jb[i]);
rbtf[i].add(jb[i]);
rbtf[i].add(tf[i]);
p2.add(rbtf[i]);
}
submitbtn = new JButton("ADD QUESTION");
p3.add(submitbtn);
f.getContentPane().add(p1);f.getContentPane().add(p2);f.getContentPane().add(p3);
f.setVisible(true);
f.setSize(new Dimension(600, 400));
f.setLocationRelativeTo(null);
}
}