Panel和布局方式的灵活使用


设计以下布局:

代码实例:

 1 public static void main(String[] args)
 2     {
 3         //整体上采用逐步细分的思想来完成,先把几个有规律的看作一个整体,再把整体再继续往下逐渐划分
 4         
 5         Frame frame = new Frame("test");
 6         frame.setSize(400,300);
 7         frame.setLocation(300,400);
 8         frame.setBackground(Color.blue);
 9         frame.setVisible(true);
10         frame.setLayout(new GridLayout(2,1));//先将整个页面分为上下两个大的Panel
11         
12         //对上面一个Panel进行处理
13         Panel p1 = new Panel(new BorderLayout());//分为西中东三块
14         Panel p2 = new Panel(new GridLayout(2,1));//中部的那块为两行一列,再用一个Panel处理
15         
16         p1.add(new Button("button"),BorderLayout.WEST);//每次新加入button都要重新new,不能加同一个button,否则会出bug
17         p1.add(new Button("button"),BorderLayout.EAST);
18         p2.add(new Button("button"));
19         p2.add(new Button("button"));
20         p1.add(p2,BorderLayout.CENTER);
21         
22         //对下面一个Panel进行处理
23         Panel p3 = new Panel(new BorderLayout());
24         Panel p4 = new Panel(new GridLayout(2,2));
25         
26         p3.add(new Button("button"),BorderLayout.WEST);
27         p3.add(new Button("button"),BorderLayout.EAST);
28         p4.add(new Button("button"));
29         p4.add(new Button("button"));
30         p4.add(new Button("button"));
31         p4.add(new Button("button"));
32         p3.add(p4,BorderLayout.CENTER);
33         
34         frame.add(p1);
35         frame.add(p3);
36         
37         frame.addWindowListener(new WindowAdapter() {
38             public void windowClosing(WindowEvent e)
39             {
40                 System.exit(0);
41             }
42         });
43     }

相关