//setVisible一定要放在所有组件之后
//否则容易引起界面上组件不全等非正常现象
//以下程序刚开始运行的界面没有显示复选框,
//当改变窗口大小后,复选框才正常显示
package snake;
import javax.swing.*;
public class Test
{
public static void main(String[] args)
{
JFrame jf=new JFrame("添加内容面板测试程序");
jf.setSize(500,500);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel contentPane=new JPanel();
jf.setContentPane(contentPane);
jf.setVisible(true);
JCheckBox jr1=new JCheckBox("羽毛球");
JCheckBox jr2=new JCheckBox("足球");
JCheckBox jr3=new JCheckBox("电脑书");
JCheckBox jr4=new JCheckBox("数学书");
JCheckBox jr5=new JCheckBox("电影");
JCheckBox jr6=new JCheckBox("录像");
contentPane.add(jr1);
contentPane.add(jr2);
contentPane.add(jr3);
contentPane.add(jr4);
contentPane.add(jr5);
contentPane.add(jr6);
}
}
修改程序:将jf.setVisible(true);放在程序最后可正常显示。
//说明一个布局管理器只能用一次,不能多次使用
package snake;
import javax.swing.*;
import java.awt.*;
public class Test
{
public static void main(String[] args)
{
JFrame jf=new JFrame("测试程序");
jf.setSize(500,500);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel contentPane=new JPanel();
jf.setContentPane(contentPane);
JPanel pan1=new JPanel();
JPanel pan2=new JPanel();
JPanel pan3=new JPanel();
JPanel pan4=new JPanel();
JPanel pan5=new JPanel();
JButton b1=new JButton("生活");
JButton b2=new JButton("工作");
JButton b3=new JButton("睡觉");
JButton b4=new JButton("购物");
JButton b5=new JButton("饮食");
JButton b6=new JButton("6");
JButton b7=new JButton("7");
JButton b8=new JButton("8");
JButton b9=new JButton("9");
JButton b10=new JButton("10");
JButton b11=new JButton("11");
JButton b12=new JButton("12");
JButton b13=new JButton("13");
JButton b14=new JButton("14");
JButton b15=new JButton("15");
JButton b16=new JButton("16");
JButton b17=new JButton("17");
JButton b18=new JButton("18");
JButton b19=new JButton("19");
JButton b20=new JButton("20");
JButton b21=new JButton("21");
JButton b22=new JButton("22");
JButton b23=new JButton("23");
JButton b24=new JButton("24");
JButton b25=new JButton("25");
BorderLayout lay=new BorderLayout();
contentPane.setLayout(lay); //第一次使用lay
contentPane.add(pan1,"North");
contentPane.add(pan2,"South");
contentPane.add(pan3,"East");
contentPane.add(pan4, "West");
contentPane.add(pan5,"Center");
pan1.setLayout(lay); //若再次使用
pan2.setLayout(new BorderLayout());
pan3.setLayout(new BorderLayout());
pan4.setLayout(new BorderLayout());
pan5.setLayout(new BorderLayout());
pan1.add(b1,"North");
pan1.add(b2,"South");
pan1.add(b3,"East");
pan1.add(b4, "West");
pan1.add(b5,"Center");
pan2.add(b6,"North");
pan2.add(b7,"South");
pan2.add(b8,"East");
pan2.add(b9, "West");
pan2.add(b10,"Center");
pan3.add(b11,"North");
pan3.add(b12,"South");
pan3.add(b13,"East");
pan3.add(b14, "West");
pan3.add(b15,"Center");
pan4.add(b16,"North");
pan4.add(b17,"South");
pan4.add(b18,"East");
pan4.add(b19, "West");
pan4.add(b20,"Center");
pan5.add(b21,"North");
pan5.add(b22,"South");
pan5.add(b23,"East");
pan5.add(b24, "West");
pan5.add(b25,"Center");
jf.setVisible(true);
}
}
将代码:pan1.setLayout(lay); 修改为:pan1.setLayout(new BorderLayout()); 运行结果为: