您的位置:首页 > 产品设计 > UI/UE

GUI事件模型ActionEvent举例,TextField事件监听举例

2014-04-02 17:09 393 查看

/* 范例名称:Java事件处理举例

 *  源文件名称:TestActionEvent.java

 * 要  点:

 *   1. Java事件处理机制

 *  2. 事件源、事件监听器概念及作用

 *  3. 如何在一个现有组件上注册监听器

 */

import java.awt.*;

import java.awt.event.*;

public class TestActionEvent {

    public static void main(String args[]) {

   Frame f = new Frame("Test");

   Button b = new Button("Press Me!");

   Monitor bh = new Monitor();

   b.addActionListener(bh);

   f.add(b,BorderLayout.CENTER);

   f.pack();

   f.setVisible(true);

    }

}

class Monitor implements ActionListener {

    public void actionPerformed(ActionEvent e) {

        System.out.println("a button has been pressed");   

    }

}

在API文档里面查找packages为java.awt,找到Button这个类,有个方法addActionListener(ActionListener l)

在java.awt.event包里,有一个接口ActionListener(事件监听器的意思)当监听器监听到某事件发生时,调用actionPerformerd(ActionEvent e)方法

/* 范例名称:Java事件处理举例

 *  源文件名称:TestActionEvent2.java

 * 要  点:

 *   1. 一个事件源组件上可以同时注册多个监听器

 *  2. 一个监听器对象可以同时注册到多个事件源组件上

 *  3. 事件源的信息可以随它所触发的事件自动传递到所有注册过的监听器

 */

import java.awt.*;

import java.awt.event.*;

public class TestActionEvent2 {

    public static void main(String args[]) {

   Frame f = new Frame("Test");

   Button b1 = new Button("Start");

   Button b2 = new Button("Stop");

   Monitor2 bh = new Monitor2();

   b1.addActionListener(bh);  //一个监听器监听两个按钮    

   b2.addActionListener(bh);

   b2.setActionCommand("game over");

   f.add(b1,"North");      

   f.add(b2,"Center"); 

   f.pack();          

   f.setVisible(true);

    }

}

class Monitor2 implements ActionListener {

    public void actionPerformed(ActionEvent e) {

     System.out.println("a button has been pressed," +

     "the relative info is:\n " + e.getActionCommand());  

 }

}

D:\mytest\java\GUI>java TestActionEvent2

a button has been pressed,the relative info is:

 Start

a button has been pressed,the relative info is:

 game over


API文档setActionCommand方法说明:


public void setActionCommand(String command)

Sets the command name for the action event fired by this button. By default this action command is set to match the label of the button.
Parameters:
command
- a string used to set the button's action command. If the string is
null
then the action command is set to match the label of the button.
/* 范例名称:Java事件处理举例

 *  源文件名称:TFActionEvent.java

 * 要  点:

 *  1.Java事件处理机制

 *  2.getSource()

 *  3.setText(" ");

 *  4.tf.setEchoChar('*');TextField里面显示为*

 */

TextField事件监听举例:

import java.awt.*;

import java.awt.event.*;

public class TFActionEvent {

 public static void main(String[] args) {

  new TFFrame();

 }

}

class TFFrame extends Frame

{

 TFFrame()

 {

  TextField tf = new TextField();

  add(tf);

  tf.addActionListener(new TFActionListener());

  pack();

  setVisible(true);

 }

}

class TFActionListener implements ActionListener

{

 public void actionPerformed(ActionEvent e)

 {

  TextField tf = (TextField)e.getSource();//getSource()拿到事件源,在一个类里面想访问另一个类的事件源对象

  System.out.println(tf.getText());

  tf.setText("");//回车后TextFiled为空

 }

}

API文档中java.awt.event包里面ActionEvent类里面父类方法Methods inherited from class java.util.EventObject

getSource()方法说明:

public Object getSource()

The object on which the Event initially occurred.
Returns:The object on which the Event initially occurred.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐