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

2024-09-01 03:58

本文主要是介绍GUI事件模型ActionEvent举例,TextField事件监听举例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!



/* 范例名称: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.

这篇关于GUI事件模型ActionEvent举例,TextField事件监听举例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1125877

相关文章

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

java中反射(Reflection)机制举例详解

《java中反射(Reflection)机制举例详解》Java中的反射机制是指Java程序在运行期间可以获取到一个对象的全部信息,:本文主要介绍java中反射(Reflection)机制的相关资料... 目录一、什么是反射?二、反射的用途三、获取Class对象四、Class类型的对象使用场景1五、Class

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Python GUI框架中的PyQt详解

《PythonGUI框架中的PyQt详解》PyQt是Python语言中最强大且广泛应用的GUI框架之一,基于Qt库的Python绑定实现,本文将深入解析PyQt的核心模块,并通过代码示例展示其应用场... 目录一、PyQt核心模块概览二、核心模块详解与示例1. QtCore - 核心基础模块2. QtWid

Java常用注解扩展对比举例详解

《Java常用注解扩展对比举例详解》:本文主要介绍Java常用注解扩展对比的相关资料,提供了丰富的代码示例,并总结了最佳实践建议,帮助开发者更好地理解和应用这些注解,需要的朋友可以参考下... 目录一、@Controller 与 @RestController 对比二、使用 @Data 与 不使用 @Dat

Flutter监听当前页面可见与隐藏状态的代码详解

《Flutter监听当前页面可见与隐藏状态的代码详解》文章介绍了如何在Flutter中使用路由观察者来监听应用进入前台或后台状态以及页面的显示和隐藏,并通过代码示例讲解的非常详细,需要的朋友可以参考下... flutter 可以监听 app 进入前台还是后台状态,也可以监听当http://www.cppcn

spring @EventListener 事件与监听的示例详解

《spring@EventListener事件与监听的示例详解》本文介绍了自定义Spring事件和监听器的方法,包括如何发布事件、监听事件以及如何处理异步事件,通过示例代码和日志,展示了事件的顺序... 目录1、自定义Application Event2、自定义监听3、测试4、源代码5、其他5.1 顺序执行

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot

Java中ArrayList和LinkedList有什么区别举例详解

《Java中ArrayList和LinkedList有什么区别举例详解》:本文主要介绍Java中ArrayList和LinkedList区别的相关资料,包括数据结构特性、核心操作性能、内存与GC影... 目录一、底层数据结构二、核心操作性能对比三、内存与 GC 影响四、扩容机制五、线程安全与并发方案六、工程