GUI学习入门(二)

GUI学习——三种布局管理

一:流式布局

代码演示:

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

public class TestFlowLayout {
    public static void main(String[] args) {
        Frame frame = new Frame();
        Panel panel = new Panel();
        frame.add(panel);
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        // 组件 - 按钮
        Button buttonOne = new Button("ButtonOne");
        Button buttonTwo = new Button("ButtonTwo");
        Button buttonThree = new Button("ButtonThree");
        // 设置流式布局
        frame.setLayout(new FlowLayout());
        //frame.setLayout(new FlowLayout(FlowLayout.LEFT));// 默认居中 可以改成FlowLayout.LEFT
        frame.setSize(200,200);
        // 把按钮添加上去
        frame.add(buttonOne);
        frame.add(buttonTwo);
        frame.add(buttonThree);

        frame.setVisible(true);

    }
}

实例:
在这里插入图片描述

二:东西南北布局

代码演示:

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class TestBorderLayout {
    public static void main(String[] args) {
        Frame frame = new Frame("TestBorderLayout");
        frame.setBounds(500,500,500,500);
        Panel panel1 = new Panel();
        frame.add(panel1);
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        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");// 中
        frame.add(button1,BorderLayout.EAST);
        frame.add(button2,BorderLayout.WEST);
        frame.add(button3,BorderLayout.SOUTH);
        frame.add(button4,BorderLayout.NORTH);
        frame.add(button5,BorderLayout.CENTER);
        frame.setVisible(true);
        frame.setSize(500,500);
    }
}

实例:
在这里插入图片描述

三:表格布局

代码演示:

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class TestGridLayout {
    public static void main(String[] args) {
        Frame frame = new Frame();
        Panel panel = new Panel();
        frame.add(panel);
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        Button button = new Button("1");
        Button button1 = new Button("2");
        Button button2 = new Button("3");
        Button button3 = new Button("4");
        Button button4 = new Button("5");

        frame.setLayout(new GridLayout(1,5));

        frame.add(button);
        frame.add(button1);
        frame.add(button2);
        frame.add(button3);
        frame.add(button4);
        //frame.setLayout(new GridLayout());
        frame.setVisible(true);
        frame.pack(); // Java函数 自动选择布局最优(选用)
    }
}

实例;
在这里插入图片描述
课后习题 如何通过上面几种布局方式实现下面的样式:
在这里插入图片描述
代码演示:

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class TestDemo01 {
    public static void main(String[] args) {
        Frame frame = new Frame();



        frame.setVisible(true);
        frame.setSize(400,400);
        frame.setLocation(500,500);
        frame.setBackground(new Color(252, 4, 4));
        frame.setLayout(new GridLayout(2,1));
        Panel panel1 = new Panel(new BorderLayout());
        Panel panel2 = new Panel(new GridLayout(2,1));
        Panel panel3 = new Panel(new BorderLayout());
        Panel panel4 = new Panel(new GridLayout(2,1));
        // 上面图形:
        panel1.add(new Button("Left-Up"),BorderLayout.EAST);

        panel1.add(new Button("Right-Up"),BorderLayout.WEST);

        panel2.add(new Button("Center-Up"));

        panel2.add(new Button("Center-Down"));

        panel1.add(panel2,BorderLayout.CENTER);
        // 下面图形:
        panel3.add(new Button("Left-Down"),BorderLayout.EAST);

        panel3.add(new Button("Right-Down"),BorderLayout.WEST);
        for (int i = 0; i < 4; i++) {
            panel4.add(new Button("for-" + i));
        }
        panel3.add(panel4,BorderLayout.CENTER);
        frame.add(panel1);
        frame.add(panel3);
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值