java-swing-事件监听-焦点监听器
感谢大佬:https://blog.csdn.net/weixin_44512194/article/details/93377551
开始不知道焦点是啥,其实就是打字的时候,这个一闪一闪的竖线。
与焦点事件监听器有关的信息:
事件名称:FocusEvent。
事件监听接口: FocusListener。
需要实现它的两个方法,分别是
**focusGained(FocusEvent arg0)**方法
**focusLost(FocusEvent arg0)**方法
第一个方法在组件捕获到焦点是会触发,第二个方法在组件失去焦点时触发
事件相关方法:addFocusListener() 添加监听,removeFocusListener() 删除监听。
现在通过一个小程序具体体会焦点监听器的用法。
分步骤代码如下:
要导入的类:
import javax.swing.JFrame; //顶层容器 (框架)
import javax.swing.JLabel; //标签
import javax.swing.JTextField; //文本框,本列为其添加焦点事件监听器
import javax.swing.JPanel; //中间容器 (嵌板)最常用的面板
import java.awt.event.FocusEvent; //焦点事件
import java.awt.event.FocusListener; //创建监听类时要实现的接口
创建窗口,面板,文本框,及标签。
JFrame jframe = new JFrame("动作监听"); //窗口
JPanel jpanel1 = new JPanel(); //面板
JLabel jlabel1 = new JLabel(); //三个标签,1用于事件触发显示内容
JLabel jlabel2 = new JLabel("普通文本框"); //标签
JLabel jlabel3 = new JLabel("添加了焦点监听器的文本框"); //标签
JTextField jtextfield1 = new JTextField("",15); //普通文本框
JTextField jtextfield2 = new JTextField("",15); //要添加焦点监听器的文本框
下面是重点,编写实现FocusListener接口的监听类,我使用第三种方法,使用一般的命名内部类实现。
class myFocusListener implements FocusListener
{
@Override
public void focusGained(FocusEvent arg0)
{
// 获取焦点时执行此方法
jlabel1.setText("文本框获得焦点,正在输入内容");
}
@Override
public void focusLost(FocusEvent arg0)
{
// 失去焦点时执行此方法
jlabel1.setText("文本框失去焦点,内容输入完成");
}
}
让文本框jlabel3添加焦点监听器
jtextfield2.addFocusListener(new myFocusListener());
最后添加组件的操作
jlabel1.setText("文本框暂未触发事件");
jpanel1.add(jlabel1); //将jlabel1添加到面板,先显示未触发状态
jpanel1.add(jlabel2); //显示“普通文本框”
jpanel1.add(jtextfield1); //添加普通文本框jtextfield1
jpanel1.add(jlabel3); //显示“添加了焦点监视器的文本框”
jpanel1.add(jtextfield2); //添加有焦点监视器的文本框jtextfield2
jframe.add(jpanel1); //面板添加入窗口
运行结果:
完整的源代码:
JFrame jframe = new JFrame("动作监听"); //窗口
jframe.setSize(200, 200); //设置窗口大小
JPanel jpanel1 = new JPanel(); //面板
JLabel jlabel1 = new JLabel(); //三个标签,1用于事件触发显示内容
JLabel jlabel2 = new JLabel("普通文本框"); //标签
JLabel jlabel3 = new JLabel("添加了焦点监听器的文本框"); //标签
JTextField jtextfield1 = new JTextField("",15); //普通文本框
JTextField jtextfield2 = new JTextField("",15); //要添加焦点监听器的文本框
public class text_FocusListenner
{
public static void main(String[] args)
{
JFrame jframe = new JFrame("动作监听"); //窗口
JPanel jpanel1 = new JPanel(); //面板
JLabel jlabel1 = new JLabel(); //三个标签,1用于事件触发显示内容
JLabel jlabel2 = new JLabel("普通文本框"); //标签
JLabel jlabel3 = new JLabel("添加了焦点监听器的文本框"); //标签
JTextField jtextfield1 = new JTextField("",15); //普通文本框
JTextField jtextfield2 = new JTextField("",15); //要添加焦点监听器的文本框
class myFocusListener implements FocusListener
{
@Override
public void focusGained(FocusEvent arg0)
{
// 获取焦点时执行此方法
jlabel1.setText("文本框获得焦点,正在输入内容");
}
@Override
public void focusLost(FocusEvent arg0)
{
// 失去焦点时执行此方法
jlabel1.setText("文本框失去焦点,内容输入完成");
}
}
//关键的一句话,添加监听器
jtextfield2.addFocusListener(new myFocusListener());
jlabel1.setText("文本框还暂时未触发事件");
jpanel1.add(jlabel1); //将jlabel1添加到面板,先显示未触发状态
jpanel1.add(jlabel2); //显示“普通文本框”
jpanel1.add(jtextfield1); //添加普通文本框jtextfield1
jpanel1.add(jlabel3); //显示“添加了焦点监视器的文本框”
jpanel1.add(jtextfield2); //添加有焦点监视器的文本框jtextfield2
jframe.add(jpanel1); //面板添加入窗口
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭时操作
jframe.setVisible(true); //设置可见
}
}
java-swing-事件监听-焦点监听器的更多相关文章
- JAVA Swing 事件监听
EventListner 接口 它是一个标记接口,每一个监听器接口扩展.这个类定义在java.util包. 类声明 以下是声明java.util.EventListener接口: public int ...
- JAVA GUI 事件监听事件 详解 和 案例.
GUI(图形用户界面) Graphical User Interface(图形用户接口) 用图形的 方式, 来显示 计算机操作的 界面, 这样更方便 更直观. CLI Command Line Use ...
- Java GUI 事件监听
现在使用的仍是AWT的事件模型.涉及到3类对象: Event Source:事件源,即事件发生所在的组件 Event:事件,封装了此次事件的相关信息 Event Listener:事件监听器,监听事件 ...
- 009-Spring Boot 事件监听、监听器配置与方式、spring、Spring boot内置事件
一.概念 1.事件监听的流程 步骤一.自定义事件,一般是继承ApplicationEvent抽象类 步骤二.定义事件监听器,一般是实现ApplicationListener接口 步骤三.启动时,需要将 ...
- JAVA自定义事件监听完整例子---sunfruit[转]
http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f733628a854d2c90c05f9313071601 ...
- java Gui编程 事件监听机制
1. GUI编程引言 以前的学习当中,我们都使用的是命令交互方式: 例如:在DOS命令行中通过javac java命令启动程序. 软件的交互的方式: 1. 命令交互方式 图书管理系统 ...
- Java界面编程—事件监听机制
组件首先要先注册事件处理器,当用户单击组件.移动鼠标或者敲击键盘时都会产生事件(Event),一旦有时间发生,应用程序就会做出对该事件的响应,这些组件就是事件源(Event source). 接受.解 ...
- Java事件监听的四种实现方式
1.事件对象: 一般继承自java.util.EventObject对象,由开发者自行定义. 2.事件源: 就是触发事件的源头,不同的事件源会触发不同的事件类型. 3.事件监听器: 事件监听器负责监听 ...
- Netty事件监听和处理(上)
陪产假结束了,今天又开始正常上班了,正好赶上米粉节活动,又要忙上一阵了,米粉节活动时间为4.03 - 4.10,有不少优惠,感兴趣的可以关注mi.com或小米商城app. 今天给大家送了福利:小爱音箱 ...
随机推荐
- 台湾旺玖MA8601|USB HUB方案|MA8601测试版
MA8601是USB 2.0高速4端口集线器控制器的高性能解决方案,完全符合通用串行总线规范2.0.MA8601继承了先进的串行接口技术,当4个DS(下游)端口同时工作时,功耗最低. MA8601采用 ...
- MySQL数据库报错 > 1366 - Incorrect string value: ‘\xE6\xB1\x9F\xE6\x96\x87‘ for column ‘Teacher‘ at row 1
数据库报错这个多半是数据库在创建的时候没有选择字符编码,导致输入中文的时候出现报错. > 1366 - Incorrect string value: '\xE6\xB1\x9F\xE6\x96 ...
- HTML网页设计基础笔记 • 【第2章 排列页面内容】
全部章节 >>>> 本章目录 2.1 音频标签和视频标签 2.1.1 音频标签 2.1.2 视频标签 2.2 列表.div 以及 span 标签 2.2.1 列表标签 2. ...
- 编写Java程序,创建一个数学工具类,将该类设计为final类,Final 修饰符的使用。
返回本章节 返回作业目录 需求说明: 创建一个数学工具类. 将该类设计为final类. 将该类的构造方法的访问权限定义为私有,以防止外界实例化该类. 在该类定义静态double类型常量π,其值为3.1 ...
- .NetCore基于Jenkins和Gogs的自动化部署方案
准备工作 Jenkins和gogs的安装配置可以看前两篇:Jenkins安装.配置与说明 和 gogs安装与说明(docker) 此外,因为还要安装.net core的SDK和Git工具: 安装.n ...
- .NET C#教程初级篇 1-1 基本数据类型及其存储方式
.NET C# 教程初级篇 1-1 基本数据类型及其存储方式 全文目录 (博客园).NET Core Guide (Github).NET Core Guide 本节内容是对于C#基础类型的存储方式以 ...
- iOS微信支付无法直接返回APP的问题
最近新测个项目,发现在IOS手机的APP上使用微信支付无法直接返回APP. 咨询微信客服,了解到无法直接返回APP的原因是收款配置的APPID为合作商家的APPID,而不是公司APP的APPID. 当 ...
- PPT制作手机手指滑动效果
原文链接:https://www.toutiao.com/i6495304998786695694/ 上一节我们完成了手机滑动粗糙效果,这部分我们将给动画添加一个手指的图片. 首先,选择"插 ...
- SSM简单实现文件上传和下载
一.配置spring-mvc <!-- 配置多媒体文件解析器 --> <bean id="multipartResolver" class="org.s ...
- Java CAS 原理详解
1. 背景 在JDK 5之前Java语言是靠 synchronized 关键字保证同步的,这会导致有锁.锁机制存在以下问题: 在多线程竞争下,加锁.释放锁会导致比较多的上下文切换和调度延时,引起性能问 ...