AWT 基本介绍
什么是Java AWT
Java AWT(抽象窗口工具包)是一个 API,用于在 Java 中开发图形用户界面 (GUI) 或基于 Windows 的应用程序。
Java AWT 组件是平台相关的,即根据操作系统的视图显示组件。AWT 很重,即它的组件使用底层操作系统 (OS) 的资源。
java.awt包为 AWT API提供了类,例如TextField、Label、TextArea、 RadioButton 、CheckBox、Choice、List等。
AWT 教程将帮助用户通过简单易行的步骤了解 Java GUI 编程。
为什么Java AWT 是平台独立的?
Java AWT 调用本机平台调用本机平台(操作系统)子例程来创建 API 组件,如 TextField、ChechBox、按钮等。
例如,带有 TextField、标签和按钮等组件的 AWT GUI 在 Windows、MAC OS 和 Unix 等不同平台上将具有不同的外观和感觉。这样做的原因是平台对其原生组件有不同的看法,AWT 直接调用创建这些组件的原生子例程。
简单来说,AWT 应用程序在 Windows 操作系统中看起来像 Windows 应用程序,而在 MAC 操作系统中看起来像 Mac 应用程序。
Java AWT 层次结构
Java AWT 类的层次结构如下所示。
UI组件
按钮、文本字段、滚动条等所有元素都称为UI组件。在 Java AWT 中,每个组件都有类,如上图所示。为了将每个组件放置在屏幕上的特定位置,我们需要将它们添加到容器中。
容器组件
Container 是 AWT 中的一个组件,它可以包含其他组件,如按钮、文本字段、标签等。扩展 Container 类的类称为容器,例如Frame、Dialog和Panel。
容器类型
Java AWT 中有四种类型的容器:
- Window
- Panel
- Frame
- Dialog
Window
Window是没有边框和菜单栏的容器。您必须使用框架、对话框或其他窗口来创建窗口。我们需要创建一个 Window 类的实例来创建这个容器。
Panel
Panel 是不包含标题栏、边框或菜单栏的容器。它是用于容纳组件的通用容器。它可以有其他组件,如按钮、文本字段等。 Panel 类的实例创建一个容器,我们可以在其中添加组件。
Frame
Frame 是包含标题栏和边框并且可以有菜单栏的容器。它可以有其他组件,如按钮、文本字段、滚动条等。框架是开发 AWT 应用程序时使用最广泛的容器。
AWT 组件类的常用方法
方法 | 描述 |
---|---|
public void add(Component c) | 在此组件上插入一个组件。 |
public void setSize(int width,int height) | 设置组件的大小(宽度和高度)。 |
public void setLayout(LayoutManager m) | 定义组件的布局管理器。 |
public void setVisible(boolean status) | 更改组件的可见性,默认为 false。 |
Java AWT 示例
要创建简单的 AWT 示例,您需要一个框架。在 AWT 中使用 Frame 创建 GUI 有两种方法。
- 通过扩展 Frame 类(继承)
- 通过创建Frame类的对象(关联)
Java AWT 继承示例
让我们看一个简单的 AWT 示例,其中我们继承了 Frame 类。在这里,我们在 Frame 上显示 Button 组件。
package cn.xnip;
import java.awt.*;
public class AWTExample1 extends Frame {
// initializing using constructor
AWTExample1() {
// creating a button
Button b = new Button("Click Me!!");
// setting button position on screen
b.setBounds(30, 100, 80, 30);
// adding button into frame
add(b);
// frame size 300 width and 300 height
setSize(300, 300);
// setting the title of Frame
setTitle("This is our basic AWT example");
// no layout manager
setLayout(null);
// now frame will be visible, by default it is not visible
setVisible(true);
}
// main method
public static void main(String args[]) {
// creating instance of Frame class
AWTExample1 f = new AWTExample1();
}
}
输出结果为:
Java AWT 关联示例
让我们看一个简单的 AWT 示例,其中我们正在创建 Frame 类的实例。在这里,我们在 Frame 上创建 TextField、Label 和 Button 组件。
package cn.xnip;
import java.awt.*;
class AWTExample2 {
// initializing using constructor
AWTExample2() {
// creating a Frame
Frame f = new Frame();
// creating a Label
Label l = new Label("Employee id:");
// creating a Button
Button b = new Button("Submit");
// creating a TextField
TextField t = new TextField();
// setting position of above components in the frame
l.setBounds(20, 80, 80, 30);
t.setBounds(20, 100, 80, 30);
b.setBounds(100, 100, 80, 30);
// adding components into frame
f.add(b);
f.add(l);
f.add(t);
// frame size 300 width and 300 height
f.setSize(400, 300);
// setting the title of frame
f.setTitle("xnip.cn:Employee info");
// no layout
f.setLayout(null);
// setting visibility of frame
f.setVisible(true);
}
// main method
public static void main(String args[]) {
// creating instance of Frame class
AWTExample2 awt_obj = new AWTExample2();
}
}
输出结果为: