📅  最后修改于: 2023-12-03 14:42:13.270000             🧑  作者: Mango
Java AWT(Abstract Window Toolkit)是Java的图形用户界面(GUI)工具包,用于构建桌面应用程序。AWT提供了一组易于使用的用户界面组件,如按钮、标签、文本框、选择框等,开发人员可以使用它们轻松地构建具有丰富用户界面的应用程序。
AWT组件继承自java.awt.Component类,可通过继承创建自定义组件。下图显示了AWT组件的层次结构:
如上图所示,Component是所有AWT组件的基类,Container类是所有容器组件(如Frame、Panel等)的基类。
标签是用于显示文本或图像的AWT组件。可以使用以下方法设置标签的文本和图像:
public void setText(String text) //设置标签文本
public void setImage(Image img) //设置标签图像
按钮是AWT中使用最广泛的组件之一。可以使用以下方法设置按钮的标签和事件处理程序:
public void setLabel(String label) //设置按钮标签
public void addActionListener(ActionListener listener) //设置按钮事件处理程序
文本框用于输入单行文本。可以使用以下方法设置文本框的文本和长度:
public String getText() //获取文本框文本
public void setText(String text) //设置文本框文本
public void setColumns(int columns) //设置文本框长度
选择框用于表示二进制状态,如“选中/未选中”之类。可以使用以下方法设置选择框的标签和状态:
public String getLabel() //获取选择框标签
public boolean getState() //获取选择框状态
public void setState(boolean state) //设置选择框状态
列表框用于显示多个选项,并允许用户从中选择一个或多个选项。可以使用以下方法设置列表框的选项:
public void add(String item) //添加选项
public void remove(String item) //删除选项
public void removeAll() //删除所有选项
AWT还支持各种布局管理器,如FlowLayout、BorderLayout、GridLayout等,可以使用它们来精确控制组件的位置和大小。
AWT使用Java事件模型来处理事件。以下是常见的AWT事件类型:
可以使用以下方法为组件添加事件处理程序:
public void addActionListener(ActionListener listener) //添加动作事件处理程序
public void addMouseListener(MouseListener listener) //添加鼠标事件处理程序
public void addKeyListener(KeyListener listener) //添加键盘事件处理程序
事件处理程序必须实现相应的事件监听器接口,例如ActionListener、MouseListener、KeyListener等。
以下是一个简单的AWT示例程序,其中包含四个文本框和一个按钮,单击按钮将计算文本框中的值并将其添加到第四个文本框中:
import java.awt.*;
import java.awt.event.*;
public class Example {
private Frame mainFrame;
private Label headerLabel;
private Label statusLabel;
private Panel controlPanel;
public Example(){
prepareGUI();
}
public static void main(String[] args){
Example awtControlDemo = new Example();
awtControlDemo.showEventDemo();
}
private void prepareGUI(){
mainFrame = new Frame("Java AWT示例");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel = new Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(350,100);
controlPanel = new Panel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showEventDemo(){
headerLabel.setText("控制面板");
Label label1= new Label("文本框1", Label.RIGHT);
Label label2 = new Label("文本框2", Label.RIGHT);
Label label3 = new Label("文本框3", Label.RIGHT);
Label label4 = new Label("文本框4", Label.RIGHT);
TextField text1 = new TextField(6);
TextField text2 = new TextField(6);
TextField text3 = new TextField(6);
TextField text4 = new TextField(6);
Button calculateButton = new Button("计算");
calculateButton.setActionCommand("Calculate");
calculateButton.addActionListener(new ButtonClickListener());
controlPanel.add(label1);
controlPanel.add(text1);
controlPanel.add(label2);
controlPanel.add(text2);
controlPanel.add(label3);
controlPanel.add(text3);
controlPanel.add(calculateButton);
controlPanel.add(label4);
controlPanel.add(text4);
mainFrame.setVisible(true);
}
private class ButtonClickListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
String value1 = text1.getText();
String value2 = text2.getText();
String value3 = text3.getText();
int num1 = Integer.parseInt(value1);
int num2 = Integer.parseInt(value2);
int num3 = Integer.parseInt(value3);
int sum = num1 + num2 + num3;
text4.setText(Integer.toString(sum));
}
}
}
以上代码创建了一个Frame,其中包含一个控制面板Panel,以及四个文本框和一个按钮。