java 图形化小工具Abstract Window Toolit

 

老掉牙的历史

Java1.0在发布的时候,就为我们提供了GUI操作的库,这个库系统在所有的平台下都可以运行,这套基本的类库被称作抽象窗口工具集(Abstract Window Toolit),简称AWT。它为Java应用程序提供基本的图形组件。AWT是窗口框架,它从不同平台的窗口系统中抽取出共同组件。当程序运行时,将这些组件的创建和动作委托给程序所在的运行平台。简而言之,当使用AWT编写图形界面应用时,程序仅指定了界面组件的位置和行为,并未提供真正的实现,JVM调用操作系统本地的图形界面来创建和平台一致的对等体。
但是AWT编程却有很多问题:
  • 使用AWT做出的图形用户界面在所有平台上都显得很丑陋,功能也非常有限
  • AWT为了迎合所有主流操作系统界面设计,AWT组件只能使用这些操作系统上图形界面组件的交集,所以不能使用特定操作系统上复杂的图形界面组件
  • 最多只能使用4种字体
  • AWT用的是非常笨拙的、非面向对象的编程模式
基于以上的问题,Sun后来发明了Swing:
这套 GUI 库的所有图形界面组件,例如文本框、按钮等都是绘制在空白窗口上的,只有窗口本身需要借助于操作系统的窗口实现.实现了真正的各个平台的一致性。

AWT的继承关系图:

 

所有和AWT编程相关的类都放在java.awt包以及它的子包中,AWT编程中有两个基类 Component(普通组件)和MenuComponent(菜单组件)

1、窗口示例图解:

任何一个窗口都可以分解为一个空的容器,以及多个组件。我们通过设置这些组件的大小,位置等等,就可以组成我们的丰富多彩的窗口。
那么Java里面什么代表空的容器呢?
容器(Container)是Component(表示组件)的子类,因此容器对象本身也是一个组件,具有组件的所有性质。但是我们的Container是所有容器的父类,我们提供了两个类型的容器,一种是Window,一种是Panel。Windows是可以独立存在的容器,我们也叫做顶级窗口,而panel不能独立存在必须添加到其他容器中。容器的继承关系图如下:

 第一个小窗口

import java.awt.*;

/**
 * @ClassName frameTest
 * @projectName: object1
 * @author: Zhangmingda
 * @description: XXX
 * date: 2021/4/29.
 */
public class frameTest {
    public static void main(String[] args) {
        Frame frame = new Frame("第一个测试窗口");
        Panel panel = new Panel(); //容器
        frame.setBounds(200,200,400,200);
        /**
         * 文本框,按钮
         */
        TextField field = new TextField(30);
        Button button = new Button("点我");
        panel.add(field);// 容器添加文本框
        panel.add(button); //容器添加按钮
        frame.add(panel); // 窗口添加容器
        frame.setVisible(true);//显示窗口
    }
}

效果图

 buttun 中文乱码 

vm options 里面加上 -Dfile.encoding=gbk

原文地址:https://www.cnblogs.com/zhangmingda/p/14718445.html