java SetLayout(null)怪问题

来源:百度知道 编辑:UC知道 时间:2024/05/08 03:30:43
我定义2个JPanel,都设置问SetLayout(null) 第一个加的控件可以按照我的要求布局,但是第二个的控件一个都看不到,第二个去了那句之后,可以看到控件,不过不是按照我的要求排列的,太奇怪了,我的2个JPanel是一样定义的,语句都差不多

this.setLayout(null);
//第一个JPanel
pFood.setLayout(null);
pFood.setBounds(20, 20, 200, 300);
pFood.setBorder(new TitledBorder("菜单"));
cFood.setBounds(10, 20, 180, 20);
sFood.setBounds(10, 40, 180, 210);
lFood.setBackground(new Color(128, 196, 234));
bC1.setBounds(70, 260, 120, 30);
cFood.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
cFood_Performed(e);
}
});
pFood.add(bC1);
pFood.add(cFood);
pFood.add(sFood);
this.add(pFood);

/*
* 所点菜显示框架控键布局
*/
//第二个JPanel
pChoose.setLayout(null);

pChoose.setBounds(240, 20, 200, 300);
pChoose.setBorder(new TitledBorder("已选定的菜"));

lChoose.setBounds(250,40,180,2

布局管理器设成null的话,就需要你手动设置x,y的位置。
如果不是null,编译器会帮你自动布局的。

第二个越界了吧。

pChoose的width只有200
你给lChoose和bChoose的起点x,却有250和290那么多。

x - 父级坐标空间中新位置左上角的 x 坐标
y - 父级坐标空间中新位置左上角的 y 坐标