GUI布局管理器总结
总结
1.Frame是一个顶级窗口
2.Panel无法单独显示,必须添加到某个容器中
3.主要分成三种模式
流式
东南西北中
表格式
三种模式要达到相互套用
例子
import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class TestDome { public static void main(String[] args) { Frame frame =new Frame(); //把整个frame界面分成两行一列 frame.setLayout(new GridLayout(2,1)); frame.setVisible(true); frame.setSize(200,200); frame.setLocation(400,500); //4个面板 Panel p1 = new Panel(new BorderLayout()); Panel p2 = new Panel(new GridLayout(2,1)); Panel p3 = new Panel(new BorderLayout()); Panel p4 = new Panel(new GridLayout(2,2)); //对上半部分操作 p1.add(new Button("east-1"),BorderLayout.EAST); p1.add(new Button("west-2"),BorderLayout.WEST); for (int i = 0; i < 2; i++) { p2.add(new Button("h"+i)); } p1.add(p2,BorderLayout.CENTER);//把P2放在P1里面 //对下半部分操作 p3.add(new Button("east-2"),BorderLayout.EAST); p3.add(new Button("west-2"),BorderLayout.WEST); for (int i = 0; i < 4; i++) { p4.add(new Button("h"+i)); } p3.add(p4,BorderLayout.CENTER);//把P4放在P3里面 //把设置好的面板放在frame里面,只能单独添加 frame.add(p1); frame.add(p3); //添加监听事件 frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); } }
代码效果
心得:写这种面板要提前构思好,要有思路之后再去写,像这个就是主要先把整个面板分成上下两部分,然后整体是四块,上半部分东南西北中式分布两侧,然后单独布置好中间部分,再把中间部分插入到上半部分,同理下半部分操作是一样得,可以借助for循环来简化代码。