感谢大佬: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-事件监听-焦点监听器的更多相关文章

  1. JAVA Swing 事件监听

    EventListner 接口 它是一个标记接口,每一个监听器接口扩展.这个类定义在java.util包. 类声明 以下是声明java.util.EventListener接口: public int ...

  2. JAVA GUI 事件监听事件 详解 和 案例.

    GUI(图形用户界面) Graphical User Interface(图形用户接口) 用图形的 方式, 来显示 计算机操作的 界面, 这样更方便 更直观. CLI Command Line Use ...

  3. Java GUI 事件监听

    现在使用的仍是AWT的事件模型.涉及到3类对象: Event Source:事件源,即事件发生所在的组件 Event:事件,封装了此次事件的相关信息 Event Listener:事件监听器,监听事件 ...

  4. 009-Spring Boot 事件监听、监听器配置与方式、spring、Spring boot内置事件

    一.概念 1.事件监听的流程 步骤一.自定义事件,一般是继承ApplicationEvent抽象类 步骤二.定义事件监听器,一般是实现ApplicationListener接口 步骤三.启动时,需要将 ...

  5. JAVA自定义事件监听完整例子---sunfruit[转]

    http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f733628a854d2c90c05f9313071601 ...

  6. java Gui编程 事件监听机制

    1.     GUI编程引言 以前的学习当中,我们都使用的是命令交互方式: 例如:在DOS命令行中通过javac java命令启动程序. 软件的交互的方式:   1. 命令交互方式    图书管理系统 ...

  7. Java界面编程—事件监听机制

    组件首先要先注册事件处理器,当用户单击组件.移动鼠标或者敲击键盘时都会产生事件(Event),一旦有时间发生,应用程序就会做出对该事件的响应,这些组件就是事件源(Event source). 接受.解 ...

  8. Java事件监听的四种实现方式

    1.事件对象: 一般继承自java.util.EventObject对象,由开发者自行定义. 2.事件源: 就是触发事件的源头,不同的事件源会触发不同的事件类型. 3.事件监听器: 事件监听器负责监听 ...

  9. Netty事件监听和处理(上)

    陪产假结束了,今天又开始正常上班了,正好赶上米粉节活动,又要忙上一阵了,米粉节活动时间为4.03 - 4.10,有不少优惠,感兴趣的可以关注mi.com或小米商城app. 今天给大家送了福利:小爱音箱 ...

随机推荐

  1. Java 设置系统参数和运行参数

    系统参数 系统级全局变量,该参数在程序中任何位置都可以访问到.优先级最高,覆盖程序中同名配置. 系统参数的标准格式为:-Dargname=argvalue,多个参数之间用空格隔开,如果参数值中间有空格 ...

  2. 在CentOS7 安装 jq

    root@: 安装EPEL源: yum install epel-release 安装完EPEL源后,可以查看下jq包是否存在: yum list jq 安装jq: yum install jq 命令 ...

  3. react中自定义antd主题与支持less(第二部)

    自定义主题 首先自定义主题需要修改antd,antd本身也是less写的之后编译成css的,所以当我们需要使用less. 1.yarn add react-app-rewire-less --dev ...

  4. 学习笔记--Java字面值

    Java 字面值 /** * 关于字面值: * * - 字面值:10.100."abc"."a".true.false * * - 字面值就是数据 * * - ...

  5. CSS相关知识及入门

    CSS(层叠样式表) 作用 修饰HTML页面,美化 CSS代码规范 放置规范 在<style>标签内容体中书写样式代码 <style>标签放置在<head>标签内. ...

  6. openGL绘图基本框架

    openGL绘图入门和导入外部文件 本文主要介绍通用绘图软件openGL的数据类型和基本的绘图框架,此外还提供了导入obj外部文件的方法,提供的代码稍作修改即可使用,希望能方便初学者快速上手. ope ...

  7. 【Java常用类】Calendar

    Calendar日历类 实例化 方法一 创建其子类**(GregorianCalendar)**的对象 方法二 调用其静态方法getInstance() Calendar instance = Cal ...

  8. leetcode 921. 使括号有效的最少添加

    问题描述 给定一个由 '(' 和 ')' 括号组成的字符串 S,我们需要添加最少的括号( '(' 或是 ')',可以在任何位置),以使得到的括号字符串有效. 从形式上讲,只有满足下面几点之一,括号字符 ...

  9. [CISCN2019 华东南赛区]Web11

    [CISCN2019 华东南赛区]Web11 写在前面 参考文章:Smarty SSTI 1.{php}{/php} Smarty已经废弃{php}标签,强烈建议不要使用.在Smarty 3.1,{p ...

  10. Hbuilder将移动app或者web项目打包

    1. 直接将项目 npm run build 打包生成dist文件 2.将dist文件放到Hbuilderx或者Hbuilder里面,这个时候你会发现他是w的,需要将其转换为A 点击该dist项目右键 ...