AWT Button类

1 什么是Java AWT Button

Button 是一个控件组件,带有标签,按下时会产生一个事件。当按钮被按下和释放时,AWT 通过调用按钮上的 processEvent 将 ActionEvent 的实例发送到按钮。按钮的 processEvent 方法接收按钮的所有事件;它通过调用自己的 processActionEvent 方法传递一个动作事件。后一种方法将动作事件传递给已注册对此按钮生成的动作事件感兴趣的任何动作侦听器。

如果应用程序想要根据按钮的按下和释放来执行某些操作,它应该实现 ActionListener 并通过调用按钮的 addActionListener 方法注册新的侦听器以接收来自该按钮的事件。应用程序可以使用按钮的动作命令作为消息传递协议。

2 Java AWT Button的语法

public class Button
   extends Component
      implements Accessible

3 Java AWT Button的构造方法

构造方法 描述
Button() 构造一个带有空字符串作为标签的按钮。
Button(String text) 构造一个具有指定标签的新按钮。

4 Java AWT Button的方法

方法 描述
void addActionListener(ActionListener l) 添加指定的动作侦听器以接收来自此按钮的动作事件。
void addNotify() 创建按钮的对等点。
AccessibleContext getAccessibleContext() 获取与此 Button 关联的 AccessibleContext。
String getActionCommand() 返回此按钮触发的操作事件的命令名称。
ActionListener[] getActionListeners() 返回在此按钮上注册的所有动作侦听器的数组。
String getLabel() 获取此按钮的标签。
<T extends EventListener> T[] getListeners(Class<T> listenerType) 返回当前在此 Button 上注册为 FooListeners 的所有对象的数组。
protected String paramString() 返回表示此按钮状态的字符串。
protected void processActionEvent(ActionEvent e) 通过将发生在此按钮上的动作事件分派到任何已注册的 ActionListener 对象来处理它们。
protected void processEvent(AWTEvent e) 处理此按钮上的事件。
void removeActionListener(ActionListener l) 移除指定的动作侦听器,使其不再接收来自该按钮的动作事件。
void setActionCommand(String command) 设置此按钮触发的动作事件的命令名称。
void setLabel(String label) 将按钮的标签设置为指定的字符串。

5 Java AWT Button的例子

让我们看一个简单的Java AWT Button类示例。

package com.yiidian;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class AwtControlDemo {

   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;

   public AwtControlDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtControlDemo  awtControlDemo = new AwtControlDemo();
      awtControlDemo.showButtonDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("一点教程网:Java AWT Examples");
      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 showButtonDemo(){
      headerLabel.setText("Control in action: Button"); 

      Button okButton = new Button("OK");
      Button submitButton = new Button("Submit");
      Button cancelButton = new Button("Cancel");

      okButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            statusLabel.setText("Ok Button clicked.");
         }
      });

      submitButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            statusLabel.setText("Submit Button clicked.");
         }
      });

      cancelButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            statusLabel.setText("Cancel Button clicked.");
         }
      });

      controlPanel.add(okButton);
      controlPanel.add(submitButton);
      controlPanel.add(cancelButton);       

      mainFrame.setVisible(true);  
   }
}

输出结果为:

热门文章

优秀文章