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

相关文章

PyQt5 GUI 开发的基础知识

《PyQt5GUI开发的基础知识》Qt是一个跨平台的C++图形用户界面开发框架,支持GUI和非GUI程序开发,本文介绍了使用PyQt5进行界面开发的基础知识,包括创建简单窗口、常用控件、窗口属性设... 目录简介第一个PyQt程序最常用的三个功能模块控件QPushButton(按钮)控件QLable(纯文本

Java Thread中join方法使用举例详解

《JavaThread中join方法使用举例详解》JavaThread中join()方法主要是让调用改方法的thread完成run方法里面的东西后,在执行join()方法后面的代码,这篇文章主要介绍... 目录前言1.join()方法的定义和作用2.join()方法的三个重载版本3.join()方法的工作原

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +

Python中注释使用方法举例详解

《Python中注释使用方法举例详解》在Python编程语言中注释是必不可少的一部分,它有助于提高代码的可读性和维护性,:本文主要介绍Python中注释使用方法的相关资料,需要的朋友可以参考下... 目录一、前言二、什么是注释?示例:三、单行注释语法:以 China编程# 开头,后面的内容为注释内容示例:示例:四

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.