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. 今天给大家送了福利:小爱音箱 ... 
随机推荐
- [opencv]建立纯色图
			1.建立纯白图片,指定大小 250*250为图片的宽高,可自己设置. Mat white = cv::Mat(250,250,CV_8UC3,Scalar(255,255,255)); 2.建立纯黑图 ... 
- Capstone CS5267|CS5267参数|CS5267规格书
			CS5267 USB Type-C to HDMI2.0b 4k@60Hz Converter with PD3.0 Support 1.CS5267概述 Capstone CS5267是一款高性能T ... 
- Two pointer方法
			I.何为Two pointer 用两个哨兵指向两个序列,通过利用序列本身的性质减少遍历次数,来更快得解决一些归并问题 基本问题 给定一个正整数递增序列和一个正整数M,求序列中两个不同位置的a,b使得a ... 
- mongodb  Windows系统下安装卡死问题
			1.操作环境 MongoBD版本:mongodb-win32-x86_64-2008plus-ssl-4.0.5-signed (4.0.5) 操作系统:Windows 2008 R2_64位 (服务 ... 
- Flask_Flask-Script脚本扩展的使用(八)
			Flask-Script扩展包提供向Flask插入外部脚本的功能,包括运行一个开发用的服务器,一个定制的Python shell,设置数据库的脚本,cronjobs,及其他运行在web应用之外的命令行 ... 
- 可观察对象(Observable)
			最简示例: export class AppComponent { title = 'angular-tour-of-heroes'; // Create an Observable that wil ... 
- Linux中安装java JDK
			Linux中安装java JDK 1.下载jdk 下载地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads. ... 
- 第10组 Alpha冲刺 (1/6)
			1.1基本情况 ·队名:今晚不睡觉 ·组长博客:https://www.cnblogs.com/cpandbb/ ·作业博客:https://edu.cnblogs.com/campus/fzu/FZ ... 
- 理解Cookie和Session机制,及其安全问题
			大家常说"Cookie保存在客户端而Session保存在服务端",很多人看了有疑惑,明明Session就在Cookie中啊,为什么这么说?二者到底有啥区别? 一.Cookie 首先 ... 
- 《剑指offer》面试题13. 机器人的运动范围
			问题描述 地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] .一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左.右.上.下移动一格(不能移动到方格外),也不能进入 ... 
