📜  AWT教程(1)

📅  最后修改于: 2023-12-03 15:13:35.030000             🧑  作者: Mango

AWT教程

AWT(Abstract Window Toolkit)是Java平台中用于创建图形用户界面(GUI)的一套类库。本教程将介绍AWT的基础知识以及如何使用AWT来构建GUI。

AWT组件

AWT中的所有GUI组件都位于java.awt包中。下面是一些常用的组件:

  • Frame:顶级窗口,可以包含其他组件;
  • Label:文本标签;
  • Button:按钮;
  • TextField:单行文本输入框;
  • TextArea:多行文本输入框;
  • Checkbox:复选框;
  • RadioButton:单选按钮;
  • Choice:下拉列表;
  • List:列表框;
  • Canvas:绘图区域。
AWT事件处理

AWT事件处理可以分为两种方式:

  1. 继承AWT组件类并重写其事件处理方法;
  2. 通过添加事件监听器实现事件处理。

下面是第一种方式的示例代码:

import java.awt.*;
import java.awt.event.*;

public class MyButton extends Frame implements ActionListener {

    private Button btn;

    public MyButton() {
        btn = new Button("Click Me!");
        btn.addActionListener(this);
        add(btn);
        setSize(200, 200);
        setVisible(true);
    }

    public void actionPerformed(ActionEvent evt) {
        System.out.println("Button Clicked!");
    }

    public static void main(String[] args) {
        new MyButton();
    }
    
}

上面的示例代码演示了创建一个按钮并添加事件监听器。其中重写了ActionListener接口的actionPerformed方法,实现按钮被点击时的响应。

下面是第二种方式的示例代码:

import java.awt.*;
import java.awt.event.*;

public class MyButton2 extends Frame {

    private Button btn;

    public MyButton2() {
        btn = new Button("Click Me!");
        btn.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                System.out.println("Button Clicked!");
            }
        });
        add(btn);
        setSize(200, 200);
        setVisible(true);
    }

    public static void main(String[] args) {
        new MyButton2();
    }
    
}

上面的示例代码使用了匿名内部类实现了事件监听器。其中,通过创建ActionListener的实例并在实例中重写actionPerformed方法,实现了按钮被点击时的响应。

AWT布局管理器

AWT提供了几种布局管理器,可以方便地布置GUI组件。下面是一些常用的布局管理器:

  • BorderLayout:将容器划分为5个区域(东、西、南、北、中),可以放置一些组件;
  • FlowLayout:在容器中从左到右依次放置组件,当容器宽度不够时会自动换行;
  • GridLayout:将容器划分为固定的行和列,每个单元格可以放置一个组件;
  • CardLayout:将多个组件叠放起来,只显示其中的一个。

下面是一个使用BorderLayout的示例代码:

import java.awt.*;

public class MyBorderLayout extends Frame {

    public MyBorderLayout() {
        Button btn1 = new Button("North");
        Button btn2 = new Button("West");
        Button btn3 = new Button("Center");
        Button btn4 = new Button("East");
        Button btn5 = new Button("South");
        setLayout(new BorderLayout());
        add(btn1, BorderLayout.NORTH);
        add(btn2, BorderLayout.WEST);
        add(btn3, BorderLayout.CENTER);
        add(btn4, BorderLayout.EAST);
        add(btn5, BorderLayout.SOUTH);
        setSize(300, 300);
        setVisible(true);
    }

    public static void main(String[] args) {
        new MyBorderLayout();
    }
    
}

上面的示例代码演示了如何使用BorderLayout将5个按钮放置在5个区域中。

AWT绘图

AWT提供了一组绘图工具,可以用于绘制简单的图形。下面是一个绘制矩形的示例代码:

import java.awt.*;

public class MyGraphics extends Frame {

    public MyGraphics() {
        setSize(300, 300);
        setVisible(true);
    }

    public void paint(Graphics g) {
        g.drawRect(50, 50, 100, 100);
    }

    public static void main(String[] args) {
        new MyGraphics();
    }
    
}

上面的示例代码演示了如何在Frame中绘制一个矩形。其中,paint方法被重写,通过Graphics对象的drawRect方法绘制一个矩形。

总结

本教程介绍了AWT的基础知识、组件、事件处理、布局管理器和绘图等方面的内容。希望可以帮助读者了解AWT并使用它构建GUI。