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

相关文章

Python包管理工具核心指令uvx举例详细解析

《Python包管理工具核心指令uvx举例详细解析》:本文主要介绍Python包管理工具核心指令uvx的相关资料,uvx是uv工具链中用于临时运行Python命令行工具的高效执行器,依托Rust实... 目录一、uvx 的定位与核心功能二、uvx 的典型应用场景三、uvx 与传统工具对比四、uvx 的技术实

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

Java中常见队列举例详解(非线程安全)

《Java中常见队列举例详解(非线程安全)》队列用于模拟队列这种数据结构,队列通常是指先进先出的容器,:本文主要介绍Java中常见队列(非线程安全)的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一.队列定义 二.常见接口 三.常见实现类3.1 ArrayDeque3.1.1 实现原理3.1.2

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结

Kotlin Compose Button 实现长按监听并实现动画效果(完整代码)

《KotlinComposeButton实现长按监听并实现动画效果(完整代码)》想要实现长按按钮开始录音,松开发送的功能,因此为了实现这些功能就需要自己写一个Button来解决问题,下面小编给大... 目录Button 实现原理1. Surface 的作用(关键)2. InteractionSource3.

Vue 2 项目中配置 Tailwind CSS 和 Font Awesome 的最佳实践举例

《Vue2项目中配置TailwindCSS和FontAwesome的最佳实践举例》:本文主要介绍Vue2项目中配置TailwindCSS和FontAwesome的最... 目录vue 2 项目中配置 Tailwind css 和 Font Awesome 的最佳实践一、Tailwind CSS 配置1. 安

CSS3 布局样式及其应用举例

《CSS3布局样式及其应用举例》CSS3的布局特性为前端开发者提供了无限可能,无论是Flexbox的一维布局还是Grid的二维布局,它们都能够帮助开发者以更清晰、简洁的方式实现复杂的网页布局,本文给... 目录深入探讨 css3 布局样式及其应用引言一、CSS布局的历史与发展1.1 早期布局的局限性1.2

rust 中的 EBNF简介举例

《rust中的EBNF简介举例》:本文主要介绍rust中的EBNF简介举例,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 什么是 EBNF?2. 核心概念3. EBNF 语法符号详解4. 如何阅读 EBNF 规则5. 示例示例 1:简单的电子邮件地址

Python开发文字版随机事件游戏的项目实例

《Python开发文字版随机事件游戏的项目实例》随机事件游戏是一种通过生成不可预测的事件来增强游戏体验的类型,在这篇博文中,我们将使用Python开发一款文字版随机事件游戏,通过这个项目,读者不仅能够... 目录项目概述2.1 游戏概念2.2 游戏特色2.3 目标玩家群体技术选择与环境准备3.1 开发环境3