实现思路,启动一个线程每隔0.1秒去比较文本里字符长度变化,如果文本变长了,这个情况间隔时间超过2秒,则认为是人工键入。

对于字符串较多,且包含数字和字母的情况,比较适用。

class KeyCodeMonitorThread extends Thread
{
private long lasttxtfield1InPutTime = 0;
private long lastheheTxtFdInPutTime = 0; private int lasttxtfield1InPutLen = 0;
private int lastheheTxtFdInPutLen = 0; @Override
public void run()
{ while (m_bIsAliveFlag)
{ if (txtfield1.getText().length() > lasttxtfield1InPutLen &&
lasttxtfield1InPutTime > 0 && System.currentTimeMillis() - lasttxtfield1InPutTime > 3000)
{
txtfield1.setText("");
showWarningDialog("请扫描标签验证!而不是键入.");
} if (heheTxtFd.getText().length() > lastheheTxtFdInPutLen &&
lastheheTxtFdInPutTime > 0 && System.currentTimeMillis() - lastheheTxtFdInPutTime > 3000)
{
heheTxtFd.setText("");
showWarningDialog("请扫描标签验证!而不是键入.");
} if (txtfield1.getText().length() == 0)
{
lasttxtfield1InPutTime = 0;
lasttxtfield1InPutLen = 0;
}
else if (txtfield1.getText().length() > lasttxtfield1InPutLen)
{
lasttxtfield1InPutLen = txtfield1.getText().length();
} if (heheTxtFd.getText().length() == 0)
{
lastheheTxtFdInPutTime = 0;
lastheheTxtFdInPutLen = 0;
}
else if (heheTxtFd.getText().length() > lastheheTxtFdInPutLen)
{
lastheheTxtFdInPutLen = heheTxtFd.getText().length();
} if (0 == lasttxtfield1InPutTime && txtfield1.getText().length() > 0)
{
lasttxtfield1InPutTime = System.currentTimeMillis();
} if (0 == lastheheTxtFdInPutTime && heheTxtFd.getText().length() > 0)
{
lastheheTxtFdInPutTime = System.currentTimeMillis();
} try {
Thread.sleep(100);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
} }

Java Swing 防止键入手Key 的实现方法的更多相关文章

  1. Java 解密错误InvalidKeyException: Illegal key size解决方法

    做解密操作,出现如下错误 java.security.InvalidKeyException: Illegal key size // 设置解密模式为AES的CBC模式 Cipher cipher = ...

  2. Java Swing 树状组件JTree的使用方法(转)

    树中特定的节点可以由 TreePath(封装节点及其所有祖先的对象)标识,或由其显示行(其中显示区域中的每一行都显示一个节点)标识.展开 节点是一个非叶节点(由返回 false 的 TreeModel ...

  3. Java Swing快速构建窗体应用程序

    以前接触java感觉其在桌面开发上,总是不太方便,没有一个好的拖拽界面布局工具,可以快速构建窗体. 最近学习了一下NetBeans IDE 8.1,感觉其窗体设计工具还是很不错的 , 就尝试一下做了一 ...

  4. 一步一步写出java swing登录界面,以及输入的参数获取

    经过好几天的学习,研究,接下来说说java swing,以及内嵌浏览器的方法. 一.swing是一个用于java应用程序用户界面的的开发工具包. 例如:接下来我们做个登录界面,简要说明 做之前的构想图 ...

  5. 【Java必修课】通过Value获取Map中的键值Key的四种方法

    1 简介 我们都知道Map是存放键值对<Key,Value>的容器,知道了Key值,使用方法Map.get(key)能快速获取Value值.然而,有的时候我们需要反过来获取,知道Value ...

  6. Java swing项目-图书管理系统(swing+mysql+jdbc) 总结

    (一)java Swing的学习. (1)学习如何安装windowbuilder插件的安装. <1>在eclipse中点击help <2>在help的下拉选中选择install ...

  7. Java swing实现酒店管理系统

    今天给大家提供一个由今天给大家提供一个由Java swing实现的酒店管理系统,数据库采用sqlserver,我会贴上部分代码,完整的代码请看文章最下方下载,下面看代码: 1.主框架代码: packa ...

  8. 「物流跟踪管理系统」 · Java Swing + MySQL JDBC开发,美和易思结业考试机试试题

    目录 文档说明: 一.语言和环境 二.技术要求 三.功能要求 四.数据库设计 五.具体要求及推荐实现步骤 六.注意事项 实现代码: 一.数据库 二.Java Swing com.ynavc.Bean ...

  9. 「影院售票系统」 · Java Swing + MySQL JDBC开发

    目录 文档说明: 一.语言和环境 二.实现功能 三.数据库设计 四.具体要求及推荐实现步骤 五.注意事项 六.评分标准 实现代码: 一.数据库: 二.Java Swing: com.ynavc.Bea ...

  10. 「超市管理系统——商品管理」 · Java Swing + MySQL JDBC开发

    项目下载:https://download.csdn.net/download/weixin_44893902/13715024 1.9元付费赞助下载:https://download.csdn.ne ...

随机推荐

  1. JZOJ 2114. 【GDKOI2011】反恐任务

    \(\text{Problem}\) 给定一张无向图,\(q\) 次询问,删去一个点或一条相邻两点间的边,问两点是否连通 询问独立 \(\text{Solution}\) 明显的用圆方树把图变成树 然 ...

  2. JZOJ 4319. 【NOIP2015模拟11.5】Lucas的数列

    题目 思路 暴力很好打,我们显然可以先把关于 \(k\) 的式子拆开 先二项式展开,然后把外面的 \(m\) 乘进去,把 \(p\) 的分母 \(m\) 消去 \(K = (\sum_{i=1}^m ...

  3. .Net 6 使用Log4Net

    1.首先引入Log4Net的 Nuget包   第一个就是 2.复制所需配置文件(文件中包含写入文本日志和数据库日志, 自行根据注释选择所需) 取名   log4net.Config <?xml ...

  4. 开发者进阶必备的9个Tips & Tricks!

    优秀的开发人员市场前景是十分广阔的,但想找到一份理想的工作,仅有代码知识是不够的.优秀的工程师应该是一个终身学习者.问题的创造性解决者,着迷于整个软件世界.要成为一名优秀的开发者,应该具备哪些品质并做 ...

  5. python ( 进阶 第一部 )

    目录 列表的相关操作与函数 字符串的相关操作与函数 集合相关操作与函数 字典相关操作与函数 深浅拷贝 文件操作 列表的相关操作 列表的拼接 lst1 = [1,2,3] lst2 = [4,5,6,6 ...

  6. Google Earth Engine——基于改进的RSEI评估生态环境(水体掩膜后)

    未经允许,禁止随意转载,尊重他人版权,仅供学习参考,欢迎交流. 背景介绍 遥感生态指数(Remote Sensing Ecological Index)的获得,是使用主成分分析法耦合了绿度.湿度.干度 ...

  7. 面向对象程序设计第三次blog

    一.前言 第六次题目集总结-- 题量:较少 难度:较高 知识点: 判断输入内容 提取输入的有效信息并进行计算 总结:题目比较难,题量较少. 第七次题目集总结-- 题量:较少 难度:一般 知识点: 输入 ...

  8. Windows 从头搭建c++ Eigen 库

    虽然目前还在用python实现自己的算法,但是还是有点略微不满足,算法迟早有一天全从python搬到c++上,先给自己立个flag. 前言 由于本人做一些模型的搭建和计算,矩阵运算必然是少不了的,本人 ...

  9. oracle收缩表和表空间

    oracle shrink space收缩表 segment shrink分为两个阶段: 1).数据重组(compact):通过一系列insert.delete操作,将数据尽量排列在段的前面.在这个过 ...

  10. Cannot read properties of null (reading ‘insertBefore‘)

    一.报错现象 vue3 + element plus 项目,本地启动时,页面进行所有操作都正常:部署到test环境后,数据驱动DOM变化的操作会导致如下报错. 二.可能原因及解决方案 经过分析出现报错 ...