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循环来简化代码。

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务