【AWT编写图形用户界面】GUI编程之AWT讲解(看不懂你来打我)
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讲解(看不懂你来打我)相关推荐
- Java GUI编程之AWT和Swing
目的:为了了解MVC架构,了解监听,我们有必要学习Java GUI 编程. 一. AWT:抽象窗口工具箱. 1.弹出窗口实例: package GUI;import java.awt.*;public ...
- Java高级教程3_图形用户界面GUI
张老师的Java高级教程中图形用户界面GUI对应的笔记 网络编辑器还要重新排版,提供原始文件下载,先看个概貌 Java高级3_图形用户界面GUI AWT的基础知识 GUI:Graphical User ...
- 用java编写图形用户界面_Java图形用户界面编程
GUI代表图形用户界面(Graphical User Interface),Java API中提供了两套组件用户支持编写图形用户界面,包括AWT和Swing. AWT使用本地操作系统的代码资源,被称为 ...
- 在java中开发图形用户_2016年计算机二级考试《JAVA》习题:编写图形用户界面
第9章 编写图形用户界面 1[单选题]哪个布局管理器使用的是组件的尺寸? ( ) A.FlowLayout B.BorderLayoutC.GridLayout D.CardLayout 参考答案:A ...
- java paint的使用_java GUI编程之paint绘制操作示例
本文实例讲述了java GUI编程之paint绘制操作.分享给大家供大家参考,具体如下: import java.awt.*; public class Testpint { public stati ...
- php7可以做什么开发,php7 图形用户界面GUI 开发怎么做?看完这个代码你就明白了...
[摘要]php7作为PHP的一个版本,也能实现很多功能,不过今天环球网校的小编要为大家讲解php7 图形用户界面GUI 开发怎么做?看完这个代码你就明白了,因为只要你了解了php7 图形用户界面GUI ...
- pyhton GUI编程之Tkinter详细讲解二
文章目录 Tkinter详细讲解 pyhton GUI编程之Tkinter详细讲解二 4. 组件用法 4.1 文本输入和输出相关控件 4.1.1 Lable标签 4.1.2 Message消息 4.1 ...
- php做gui,php7 图形用户界面GUI如何开发
php7 图形用户界面GUI如何开发?这篇文章主要介绍了php7 图形用户界面GUI 开发,结合实例形式分析了PHP7基于php_ui扩展实现的图形用户界面GUI相关操作技巧,感兴趣的用户就来一聚教程 ...
- gui设置可编辑文本框的回调函数_用Tkinter制作Python程序的图形用户界面(GUI),打包后比Qt5减少60M(77.5%)(实例63)...
实例61使用PyQt5制作了图形用户界面(GUI).这个香是香,但是打包后的安装文件太大(约80M),感觉有些美中不足啊.由于这个GUI实在简单,从现实角度实在用不着高大上的PyQt5,所以改用Pyt ...
最新文章
- 如何自制你自己的二极管
- html模板是干嘛的,html模板有什么用
- Java Mission Control 5.2终于来了! 欢迎7u40!
- REST framework 权限管理源码分析
- 停止预览时调用Camera.release(), 出现Method called after release()异常问题原因及解决办法...
- python批量检索文献_导师每天都让查文献,如何才能快速查找文献呢?
- 双光耦开关电源电路图_简单的开关电源电路图大全(六款简单的开关电源电路设计原理图详解)...
- 计算机网络实验 IP网络规划与路由设计
- linux移植1.3寸oled屏幕,芯片SH1106
- android自定义控件(星级评分)
- 大数据周会-本周学习内容总结05
- 一站放心购全球:亚马逊海外购开启2022年黑五全球购物季
- 中国大学慕课公开课-《视听语言》-学习笔记-2
- UR机器人返回信息格式解析
- 怎么调整计算机显示屏,电脑显示器画面怎么调整
- 我们可以从挑战者灾难中学到什么关于网络安全的知识?一切。
- java时间解析错误_java.lang.IllegalArgumentException:解析错误-日期格式错误?
- OPPO R9微信分身设置
- 腾讯安全发布《2021年全球DDoS威胁报告》:DDoS威胁成犯罪团伙首选勒索手段
- 【附源码】计算机毕业设计java英语单词记忆系统设计与实现