Java基础-GUI入门-AWT组件和容器

7 篇文章 4 订阅

2.

2.1、AWT介绍

  • 其包含了很多的类和接口。

  • 元素:窗口,按钮,文本框。

  • Java.awt:

在这里插入图片描述

2.2、

1、Frame

代码:

package com.edwin.lession01;
import java.awt.*;
//GUI第一个界面
/**
 * @author EdwinD
 * @create 2020.08.16 上午 10:03
 * @desc 
 **/
public class TextFrame1 {
    public static void main(String[] args) {
//        Frame,JDK,查看源码
        Frame frame = new Frame("My First Java 图形界面");

//        设置窗口可见性,无关于窗口大小.
        frame.setVisible(true);

//        设置窗口大小
        frame.setSize(777, 777);

//        设置背景颜色
        frame.setBackground(new Color(77,77,77));

//        设置初始位置
        frame.setLocation(777,77);

//        控制窗口大小是否可改变,默认为True,即可以改变。
        frame.setResizable(false);
    }
}

输出效果:

在这里插入图片描述

缺点:

此时的窗口无法关闭,只能通过IDEA停止代码,才可以关闭整个窗口。

封装后多窗口输出:

代码2.0:

package com.edwin.lession01;
import java.awt.*;
public class TextFrame2 {
    public static void main(String[] args) {
//        展示多个窗口new
        new MyFrame(77, 77, 350, 350, Color.blue);
        new MyFrame(77, 477, 350, 350, Color.red);
        new MyFrame(477, 77, 350, 350, Color.green);
        new MyFrame(477, 477, 350, 350, Color.gray);

    }

    static 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);

        }
    }
}

输出2.0:

在这里插入图片描述

2、Panel

解决了关闭的小问题。

**注:**Frame在add一个Panel的时候,使用的是frame.add(Component comp),这是因为Panel类extends了Container,而Container类extends了Component。

在这里插入图片描述

监听器小剧透
  • 添加监听事件,使用窗口上方的小叉叉进行关闭.调用System.exit(0).

对于目前所编写的面板,窗口,都是无法直接通过点击上方的小叉进行关闭的,这里需要用到一些后面的监听器的内容进行功能的实现。

1.常规情况下的监听器:

frame.addWindowListener(new WindowListener() {
    @Override
    public void windowOpened(WindowEvent e) {

    }

    @Override
    public void windowClosing(WindowEvent e) {

    }

    @Override
    public void windowClosed(WindowEvent e) {

    }

    @Override
    public void windowIconified(WindowEvent e) {

    }

    @Override
    public void windowDeiconified(WindowEvent e) {

    }

    @Override
    public void windowActivated(WindowEvent e) {

    }

    @Override
    public void windowDeactivated(WindowEvent e) {

    }
});

但是这里使用到的监听器是全部的,太过于全面,我们只需要里面的部分监听器进行工作即可。因此,我们可以尝试调用其子类:

在这里插入图片描述

frame.addWindowListener(new WindowAdapter() {
    @Override
    public void windowClosing(WindowEvent e) {
//      结束程序
        System.exit(0);
    }
});
  • System.exit(0):正常关闭;System.exit(1):异常关闭.其关闭对象是Java程序。

效果:
在这里插入图片描述

路漫漫其修远兮,吾将上下而求索。

参考文献

《【狂神说Java】GUI编程入门到游戏实战》
视频链接

2020.08.18

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值