GUI编程之三种布局管理器

2 篇文章 0 订阅

布局管理器

  • 流式布局
  • 中西南北中
  • 表格布局

流式布局

package com.lyh.GUI;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Flowlayout {
    public static void main(String[] args) {
        //创建frame窗口,快捷键Alt+回车
        Frame frame = new Frame();
        //创建按钮
        Button button1 = new Button("button1");
        Button button2 = new Button("button2");
        Button button3 = new Button("button3");
        //设置窗口的大小及在屏幕上出现的位置
        frame.setBounds(600,600,600,600);
        //添加按钮到窗口
        frame.add(button1);
        frame.add(button2);
        frame.add(button3);
        //设置流式布局
        frame.setLayout(new FlowLayout());
        //设置窗口可见
        frame.setVisible(true);
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
    }


东西南北中

package com.lyh.GUI;

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class Borderlayout {
    public static void main(String[] args) {
        Frame frame = new Frame();

        Button east = new Button("East");
        Button west = new Button("West");
        Button south = new Button("South");
        Button north = new Button("North");
        Button center = new Button("Center");

        frame.add(east,BorderLayout.EAST);
        frame.add(west,BorderLayout.WEST);
        frame.add(south,BorderLayout.SOUTH);
        frame.add(north,BorderLayout.NORTH);
        frame.add(center,BorderLayout.CENTER);
        frame.setSize(200,200);
        frame.setVisible(true);
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
}

表格布局

package com.lyh.GUI;

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class GridLayout {
    public static void main(String[] args) {
        //创建窗口
        Frame frame = new Frame();
        //创建按钮
        Button button1 = new Button("button1");
        Button button2 = new Button("button2");
        Button button3 = new Button("button3");
        Button button4 = new Button("button4");
        Button button5 = new Button("button5");
        Button button6 = new Button("button6");
        //将按钮加入到窗口中
        frame.add(button1);
        frame.add(button2);
        frame.add(button3);
        frame.add(button4);
        frame.add(button5);
        frame.add(button6);
        //设置窗口布局方式为表格布局
        frame.setLayout(new java.awt.GridLayout(3,2));
        //设置窗口大小
        frame.setBounds(300,300,300,300);
        frame.pack();//Java函数
        //设置窗口可见
        frame.setVisible(true);
        //设置监听,使窗口可关闭
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });

    }
}

附加题

通过布局管理器实现如下布局:
在这里插入图片描述

package com.lyh.GUI;
import java.awt.*;
import java.awt.GridLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class test {
    public static void main(String[] args) {
        //创建窗口
        Frame frame = new Frame();
        //创建面板
        //p1是位于窗口east方向上的面板
        Panel p1 = new Panel(new GridLayout(2,1));
        //p2是位于窗口wast方向上的面板
        Panel p2 = new Panel(new GridLayout(2,1));
        //p3和p4包含于p5中
        Panel p3 = new Panel(new GridLayout(2,1));
        Panel p4 = new Panel(new GridLayout(2,2));
        //p5是位于窗口center方向上的面板
        Panel p5 = new Panel(new GridLayout(2,1));
        //将按钮加入面板(p1)
        p1.add(new Button("p1-east-1"));
        p1.add(new Button("p1-east-2"));
        //将面板(p1)加入窗口
        frame.add(p1,BorderLayout.EAST);
        //将按钮加入面板(p2)
        p2.add(new Button("p2-wast-1"));
        p2.add(new Button("p2-wast-2"));
        //将面板p2加入窗口
        frame.add(p2,BorderLayout.WEST);
        //将按钮加入面板(p3)
        p3.add(new Button("p3-center-1"));
        p3.add(new Button("p3-center-2"));
        //将面板p3加入面板p5
        p5.add(p3);
        //将按钮加入面板(p4)
        p4.add(new Button("p4-center-1"));
        p4.add(new Button("p4-center-2"));
        p4.add(new Button("p4-center-3"));
        p4.add(new Button("p4-center-4"));
        //将面板p4加入面板p5
        p5.add(p4);
        //将p5加入窗口
        frame.add(p5,BorderLayout.CENTER);
        //设置窗口大小及出现时的位置
        frame.setBounds(600,600,600,600);
        //设置窗口可见
        frame.setVisible(true);
        //窗口关闭监听
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
}

截图如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值