Java AWT 教程

Java AWT(Abstract Window Toolkit)是用于在 Java 中开发基于图形用户界面(GUI)或基于窗口的应用程序的 API。

Java AWT 组件是与平台相关的,即组件的显示方式根据操作系统的视图进行。AWT 是重量级的,即其组件使用底层操作系统(OS)的资源。

java.awt 包提供了用于 AWT API 的类,例如 TextField、Label、TextArea、RadioButton、CheckBox、Choice、List 等。 AWT 教程将帮助用户以简单易懂的步骤理解 Java GUI 编程。

为什么 AWT 是平台无关的?

Java AWT 调用本地平台(操作系统)子程序来创建 API 组件,如 TextField、ChechBox、button 等。

例如,一个带有 TextField、label 和 button 等组件的 AWT GUI 在不同的平台(如 Windows、MAC OS 和 Unix)上具有不同的外观和风格。原因是各个平台对其本地组件具有不同的视图,而 AWT 直接调用创建这些组件的本地子程序。

简而言之,在 Windows 操作系统中,AWT 应用程序看起来像一个 Windows 应用程序,而在 MAC OS 中,它看起来像一个 Mac 应用程序。

Java AWT 层次结构

Java AWT 类的层次结构如下所示。

图1

组件

所有元素,如按钮、文本字段、滚动条等,都称为组件。在 Java AWT 中,每个组件都有相应的类,如上图所示。为了将每个组件放置在屏幕上的特定位置,我们需要将它们添加到容器中。

容器

容器是 AWT 中可以包含其他组件(如按钮、文本字段、标签等)的组件。扩展 Container 类的类称为容器,如 Frame、Dialog 和 Panel。

它基本上是一个屏幕,在其中将组件放置在其特定位置。因此,它包含并控制组件的布局。

注意:容器本身也是一个组件(请参阅上图),因此我们可以在容器内添加容器。

容器的类型:

Java AWT 有四种类型的容器:

  1. 窗口(Window)
  2. 面板(Panel)
  3. 框架(Frame)
  4. 对话框(Dialog)

窗口(Window) 窗口是没有边框和菜单栏的容器。要创建一个窗口,必须使用框架、对话框或另一个窗口。我们需要创建 Window 类的实例来创建此容器。

面板(Panel) 面板是不包含标题栏、边框或菜单栏的容器。它是一个通用的容器,用于容纳组件。它可以包含其他组件,如按钮、文本字段等。Panel 类的实例创建一个容器,我们可以在其中添加组件。

框架(Frame) 框架是包含标题栏和边框的容器,并且可以有菜单栏。它可以包含其他组件,如按钮、文本字段、滚动条等。在开发 AWT 应用程序时,框架是最常用的容器。

Component 类的常用方法

MethodDescription
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 示例,需要一个框架。使用 Frame 在 AWT 中创建 GUI 有两种方法。

  1. 通过扩展 Frame 类(继承)
  2. 通过创建 Frame 类的对象(关联)

通过继承的 AWT 示例

让我们看一个简单的 AWT 示例,我们在其中继承 Frame 类。在这里,我们在 Frame 上显示 Button 组件。

AWTExample1.java

// 导入 Java AWT 类   
import java.awt.*;    
  
//将 Frame 类扩展到我们的类 AWTExample1    
public class AWTExample1 extends Frame {    
  
   //使用构造函数初始化   
   AWTExample1() {  
  
      //  创建一个按钮    
      Button b = new Button("Click Me!!");  
  
      //  设置按钮在屏幕上的位置   
      b.setBounds(30,100,80,30);  
  
      // 将按钮添加到框架中       
      add(b);  
  
      // 框架大小 300 宽和 300 高    
      setSize(300,300);  
  
      //设置Frame的标题    
      setTitle("This is our basic AWT example");   
          
      // 没有布局管理器      
      setLayout(null);   
  
      //  现在框架将可见,默认情况下它是不可见的
      setVisible(true);  
}    
  
// 主要方法  
public static void main(String args[]) {   
  
// 创建框架类的实例      
AWTExample1 f = new AWTExample1();    
  
}  
  
}    

上面的示例中使用了 setBounds(int x-axis, int y-axis, int width, int height) 方法,该方法设置了 awt button 的位置。

输出:

图2

通过关联的 AWT 示例

让我们看一个简单的 AWT 示例,我们在其中创建 Frame 类的实例。在这里,我们在 Frame 上创建了 TextField、Label 和 Button 组件。 AWTExample2.java

// 导入 Java AWT 类  
import java.awt.*;    
  
//类 AWTExample2 直接创建 Frame 类的实例  
class AWTExample2 {    
  
   // 使用构造函数初始化  
   AWTExample2() {  
  
      //创建一个框架   
      Frame f = new Frame();  
  
      // 创建标签  
      Label l = new Label("Employee id:");   
  
      // 创建一个按钮
      Button b = new Button("Submit");  
  
      // 创建一个文本字段   
      TextField t = new TextField();  
  
      //设置上述组件在框架中的位置   
      l.setBounds(20, 80, 80, 30);  
      t.setBounds(20, 100, 80, 30);  
      b.setBounds(100, 100, 80, 30);  
  
      //将组件添加到框架中      
      f.add(b);  
      f.add(l);  
      f.add(t);  
  
      // 框架大小 300 宽和 300 高        
      f.setSize(400,300);  
  
      // 设置框架的标题    
      f.setTitle("Employee info");   
          
      // 没有布局   
      f.setLayout(null);   
  
      // 设置框架的可见性    
      f.setVisible(true);  
}    
  
// 主要方法  
public static void main(String args[]) {   
  
// 创建框架类的实例     
AWTExample2 awt_obj = new AWTExample2();    
  
}  
  
}    

输出:

图3

标签: java, Java面试题, Java下载, java教程, java技术, Java学习, Java学习教程, Java语言, Java开发, Java入门教程, Java进阶教程, Java高级教程, Java笔试题, Java编程思想