JDK中提供了AWT和Swing两个包,用于GUI(图形用户界面)程序的设计和开发。下面为大家介绍一下用AWT如何进行GUI编程。

文章目录

  • 1 AWT
  • 2 内部类和匿名类
  • 3 Frame
  • 4 布局管理器
    • 4.1 第一种布局管理器——FlowLayout
    • 4.2 第二种布局管理器——BorderLayout
    • 4.3 第三种布局管理器——GridLayout(表格布局管理器)

1 AWT

AWT中有两个核心的类:组件和容器(Component和Container)。组件就是按钮、文本框…而容器就是一个载体,用来添加组件这些元素。
  其中容器又分为 Window 和 Panel。Window 可以显示出来,可以向里面添加按钮等组件,而 Panel 也可以添加组件,但是Panel 不能独立显示,需要添加到 Window 里才可以进行显示。 具体关系如下图

2 内部类和匿名类

在一个类中定义另一个类,这样定义的类称为内部类。【包含内部类的类可以称为内部类的外部类】
如果想要通过一个类来使用另一个类,可以定义为内部类。【比如苹果手机类,苹果手机类中的黄金版的是特别定制的】
内部类的外部类的成员变量在内部类中仍然有效,内部类中的方法也可以调用外部类中的方法。【不论是静态还是非静态的,内部类都可以直接调用外部类中的属性,】

class Outer{int a=5;static int b=6;void show() {System.out.println("hello world");}class Inner{void use() {System.out.println(a);//5System.out.println(b);//6show();//hello world}}void create() {new Inner().use();}}public class Demo {public static void main(String[] args) {new Outer().create();Outer.Inner oi=new Outer().new Inner();oi.use();}}

匿名类,就是没有名称的类,其名称由Java编译器给出,一般是形如:外部类名称+$+匿名类顺序,没有名称也就是其他地方就不能引用,不能实例化,只用一次,当然也就不能有构造器。
匿名类就是利用父类的构造函数和自身类体构造成一个类。

3 Frame

Frame窗体是一个容器,是带有标题和边框的顶层窗口。

使用方法如下:

Frame frame = new Frame(“这个一个窗口”);

构造方法里面的参数用来这是窗体的标题,这个构造方法创建的 Frame 对象最初是不可见的,那么我们使用它的成员方法来设置这个窗体的各种属性,它常用的成员方法如下表所示:


上面代码的实例方法如下:

import java.awt.*;public class Demo2 {public static void main(String[] args) {Frame frame = new Frame();frame.setTitle("这是一个窗口");frame.setResizable(true);frame.setVisible(true);frame.setBounds(100, 100, 500, 300);frame.setBackground(Color.pink);frame.setLayout(new FlowLayout());}
}

当你创建一个窗体后会发现关闭不了窗口,解决的方法就是使 Java 程序停止运行,这个时候我们可以对这个窗体添加一个监听事件,用来关闭窗口的事件,代码实现如下:
在java编写的过程中常常遇到样的一段代码
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);//退出系统
}
});
这个是匿名类,就相当于写了一个类,继承WindowAdapter,然后又覆盖了它其中的一部分方法,再新建这个类的一个实例,作为addWindowListener的参数~

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;public class Demo2 {public static void main(String[] args) {Frame frame = new Frame();frame.setTitle("这是一个窗口");frame.setResizable(true);frame.setVisible(true);frame.setBounds(100, 100, 500, 300);frame.setBackground(Color.pink);frame.setLayout(new FlowLayout());frame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);   //正常退出程序}});}
}

软件包 java.awt.event 的描述
提供处理由 AWT 组件所激发的各类事件的接口和类,包含用来检测并对时间做出反应的三个组成元素:源对象、监视器对象和事件对象。有关 AWT 事件模型的细节,请参见 java.awt.AWTEvent 类。事件由事件源所激发。向事件源注册的事件侦听器可接收有关特定事件类型的通知。此包定义了事件和事件侦听器,以及事件侦听器适配器,它是让事件侦听器的编写过程更为轻松的便捷类。

4 布局管理器

4.1 第一种布局管理器——FlowLayout

这种布局管理器是对组件逐行定位,行内从左到右,一行排满后进行换行,FlowLayout 默认的布局方式的居中对齐

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;public class Demo2 {public static void main(String[] args) {Frame frame = new Frame();frame.setTitle("这是一个窗口");frame.setResizable(true);frame.setVisible(true);frame.setBounds(100, 100, 500, 300);frame.setBackground(Color.pink);Button button0 = new Button("button");Button button1 = new Button("button");Button button2 = new Button("button");frame.setLayout(new FlowLayout());frame.add(button0);frame.add(button1);frame.add(button2);frame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});}
}

4.2 第二种布局管理器——BorderLayout

这种布局管理器把容器分为东(EAST)西(WEST)南(SOUTH)北(NORTh)中(CENTER)

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;public class Demo2 {public static void main(String[] args) {Frame frame = new Frame();frame.setTitle("这是一个窗口");frame.setResizable(true);frame.setVisible(true);frame.setBounds(100, 100, 500, 300);frame.setBackground(Color.pink);Button button0 = new Button("west");Button button1 = new Button("east");Button button2 = new Button("north");Button button3 = new Button("south");Button button4 = new Button("center");frame.setLayout(new BorderLayout());frame.add(button0, BorderLayout.WEST);frame.add(button1, BorderLayout.EAST);frame.add(button2, BorderLayout.NORTH);frame.add(button3, BorderLayout.SOUTH);frame.add(button4, BorderLayout.CENTER);frame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});}
}

4.3 第三种布局管理器——GridLayout(表格布局管理器)

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;public class Demo2 {public static void main(String[] args) {Frame frame = new Frame();frame.setTitle("这是一个窗口");frame.setResizable(true);frame.setVisible(true);frame.setBounds(100, 100, 500, 300);frame.setBackground(Color.pink);Button button0 = new Button("button");Button button1 = new Button("button");Button button2 = new Button("button");Button button3 = new Button("button");Button button4 = new Button("button");frame.setLayout(new GridLayout(3,2));frame.add(button0);frame.add(button1);frame.add(button2);frame.add(button3);frame.add(button4);frame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});}
}

【AWT编写图形用户界面】GUI编程之AWT讲解(看不懂你来打我)相关推荐

  1. Java GUI编程之AWT和Swing

    目的:为了了解MVC架构,了解监听,我们有必要学习Java GUI 编程. 一. AWT:抽象窗口工具箱. 1.弹出窗口实例: package GUI;import java.awt.*;public ...

  2. Java高级教程3_图形用户界面GUI

    张老师的Java高级教程中图形用户界面GUI对应的笔记 网络编辑器还要重新排版,提供原始文件下载,先看个概貌 Java高级3_图形用户界面GUI AWT的基础知识 GUI:Graphical User ...

  3. 用java编写图形用户界面_Java图形用户界面编程

    GUI代表图形用户界面(Graphical User Interface),Java API中提供了两套组件用户支持编写图形用户界面,包括AWT和Swing. AWT使用本地操作系统的代码资源,被称为 ...

  4. 在java中开发图形用户_2016年计算机二级考试《JAVA》习题:编写图形用户界面

    第9章 编写图形用户界面 1[单选题]哪个布局管理器使用的是组件的尺寸? ( ) A.FlowLayout B.BorderLayoutC.GridLayout D.CardLayout 参考答案:A ...

  5. java paint的使用_java GUI编程之paint绘制操作示例

    本文实例讲述了java GUI编程之paint绘制操作.分享给大家供大家参考,具体如下: import java.awt.*; public class Testpint { public stati ...

  6. php7可以做什么开发,php7 图形用户界面GUI 开发怎么做?看完这个代码你就明白了...

    [摘要]php7作为PHP的一个版本,也能实现很多功能,不过今天环球网校的小编要为大家讲解php7 图形用户界面GUI 开发怎么做?看完这个代码你就明白了,因为只要你了解了php7 图形用户界面GUI ...

  7. pyhton GUI编程之Tkinter详细讲解二

    文章目录 Tkinter详细讲解 pyhton GUI编程之Tkinter详细讲解二 4. 组件用法 4.1 文本输入和输出相关控件 4.1.1 Lable标签 4.1.2 Message消息 4.1 ...

  8. php做gui,php7 图形用户界面GUI如何开发

    php7 图形用户界面GUI如何开发?这篇文章主要介绍了php7 图形用户界面GUI 开发,结合实例形式分析了PHP7基于php_ui扩展实现的图形用户界面GUI相关操作技巧,感兴趣的用户就来一聚教程 ...

  9. gui设置可编辑文本框的回调函数_用Tkinter制作Python程序的图形用户界面(GUI),打包后比Qt5减少60M(77.5%)(实例63)...

    实例61使用PyQt5制作了图形用户界面(GUI).这个香是香,但是打包后的安装文件太大(约80M),感觉有些美中不足啊.由于这个GUI实在简单,从现实角度实在用不着高大上的PyQt5,所以改用Pyt ...

最新文章

  1. 如何自制你自己的二极管
  2. html模板是干嘛的,html模板有什么用
  3. Java Mission Control 5.2终于来了! 欢迎7u40!
  4. REST framework 权限管理源码分析
  5. 停止预览时调用Camera.release(), 出现Method called after release()异常问题原因及解决办法...
  6. python批量检索文献_导师每天都让查文献,如何才能快速查找文献呢?
  7. 双光耦开关电源电路图_简单的开关电源电路图大全(六款简单的开关电源电路设计原理图详解)...
  8. 计算机网络实验 IP网络规划与路由设计
  9. linux移植1.3寸oled屏幕,芯片SH1106
  10. android自定义控件(星级评分)
  11. 大数据周会-本周学习内容总结05
  12. 一站放心购全球:亚马逊海外购开启2022年黑五全球购物季
  13. 中国大学慕课公开课-《视听语言》-学习笔记-2
  14. UR机器人返回信息格式解析
  15. 怎么调整计算机显示屏,电脑显示器画面怎么调整
  16. 我们可以从挑战者灾难中学到什么关于网络安全的知识?一切。
  17. java时间解析错误_java.lang.IllegalArgumentException:解析错误-日期格式错误?
  18. OPPO R9微信分身设置
  19. 腾讯安全发布《2021年全球DDoS威胁报告》:DDoS威胁成犯罪团伙首选勒索手段
  20. 【附源码】计算机毕业设计java英语单词记忆系统设计与实现

热门文章

  1. 无需人脸检测,实时3维人脸姿态估计img2pose 2020
  2. mysql comment
  3. 如何理解卷积神经网络中的1*1卷积
  4. python元素平方和,模长
  5. 基于keras的深度学习基本概念讲解
  6. numpy基本用法多维数组
  7. c++ -DNDEBUG openMP优化
  8. 青龙面板修改端口教程避开5700更安全
  9. 孔兵 库卡机器人_名企零距离 专访库卡首席执行官 孔兵先生
  10. php yaml扩展,php的扩展 - yaml