GUI - AWT基础

介绍

AWT中
包含了很多的类和接口
有各种各样的元素窗口、按钮、文本框
包名:java.awt
在这里插入图片描述

组件和容器

窗口 Frame

展示一个窗口

package com.zlsaxx.lesson1;

import java.awt.*;

public class TestFrame {
    public static void main(String[] args) {

        Frame frame = new Frame("第一个Java图形界面窗口");

        //设置可见性
        frame.setVisible(true);
        
        //设置窗口大小
        frame.setSize(400,400);
        
        //设置背景颜色
        frame.setBackground(new Color(130, 255, 240));
        
        //设置弹出的初始位置
        frame.setLocation(200,200);
        
        //设置大小固定
        frame.setResizable(false);
    }
}

运行弹出界面:
在这里插入图片描述
停止运行窗口自动关闭

代码封装展示多个窗口

package com.zlsaxx.lesson1;

import java.awt.*;

public class TestFrame2 {
    public static void main(String[] args) {
        //展示多个窗口
        MyFrame myFrame1 = new MyFrame(100, 100, 400, 200, Color.cyan);
        MyFrame myFrame2 = new MyFrame(500, 100, 400, 200, Color.magenta);
        MyFrame myFrame3 = new MyFrame(100, 300, 400, 200, Color.pink);
        MyFrame myFrame4 = new MyFrame(500, 300, 400, 200, Color.orange);

    }
}

class MyFrame extends Frame{
    static int id = 0; //可能存在多个窗口

    public MyFrame(int x,int y,int w,int h,Color color){ //构造器
        super("MyFrame+" + (++id));
        setVisible(true);
        setBounds(x,y,w,h);
        setBackground(color);
    }

}

运行弹出界面
在这里插入图片描述

面板 Panel

Panel不能单独存在,可以看成是容器中的一个空间

frame.add(panel)

package com.zlsaxx.lesson1;

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

//Panel可以看成是容器中的一个空间,不能单独存在
public class TestPanel {
    public static void main(String[] args) {
        Frame frame = new Frame();

        Panel panel = new Panel();

        //设置布局
        frame.setLayout(null);
        frame.setBounds(300,300,500,500);
        frame.setBackground(new Color(130, 255, 240));

        panel.setBounds(150,150,200,200);
        panel.setBackground(new Color(55, 255, 55));

        frame.add(panel);

        frame.setVisible(true);

        //监听事件 窗口关闭事件
        //适配器模式
        frame.addWindowListener(new WindowAdapter() {
            //窗口点击关闭的时候要做的事情
            @Override
            public void windowClosing(WindowEvent e) {
            	//结束程序
                System.exit(0);
            }
        });
    }
}

运行弹出窗口:
在这里插入图片描述

布局管理器

流式布局 FlowLayout

package com.zlsaxx.lesson1;

import java.awt.*;

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

        //组件 - 按钮
        Button button1 = new Button("button1");
        Button button2 = new Button("button1");
        Button button3 = new Button("button1");

        //设置为流式布局
        frame.setLayout(new FlowLayout(FlowLayout.LEFT));

        frame.setSize(400,400);

        //添加按钮
        frame.add(button1);
        frame.add(button2);
        frame.add(button3);

        frame.setVisible(true);

    }
}

运行弹出窗口:
在这里插入图片描述

东西南北中布局 BorderLayout

package com.zlsaxx.lesson1;

import java.awt.*;

public class TestBorderLayout {
    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(400,400);
        frame.setVisible(true);
    }
}

运行弹出窗口:
在这里插入图片描述

网格布局 GridLayout

package com.zlsaxx.lesson1;

import java.awt.*;

public class TestGridLayout {
    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.setLayout(new GridLayout(3,2));

        frame.add(button1);
        frame.add(button2);
        frame.add(button3);
        frame.add(button4);
        frame.add(button5);
        frame.add(button6);

        frame.pack(); //Java函数,根据窗口里面的布局及组件的preferedSize来确定frame的最佳大小。
        frame.setVisible(true);
    }
}

运行弹出窗口:
在这里插入图片描述
其实界面应该是很小的(因为frame.pack()的缘故)但我拉大了为了方便看清

练习作业

在这里插入图片描述

package com.zlsaxx.lesson1;

import java.awt.*;

public class HomeWork {
    public static void main(String[] args) {

        Frame frame = new Frame();
        frame.setVisible(true);
        frame.setSize(600,400);
        frame.setLocation(500,500);
        frame.setBackground(Color.cyan);
        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,2));

        panel1.add(new Button("Ease-1"),BorderLayout.EAST);
        panel1.add(new Button("West-1"),BorderLayout.WEST);

        panel2.add(new Button("panel2-1"));
        panel2.add(new Button("panel2-2"));
        panel1.add(panel2,BorderLayout.CENTER);

        panel3.add(new Button("Ease-2"),BorderLayout.EAST);
        panel3.add(new Button("West-2"),BorderLayout.WEST);

        panel4.add(new Button("panel4-1"));
        panel4.add(new Button("panel4-2"));
        panel4.add(new Button("panel4-3"));
        panel4.add(new Button("panel4-4"));
        panel3.add(panel4,BorderLayout.CENTER);

        frame.add(panel1);
        frame.add(panel3);

    }
}
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值