实现思路,启动一个线程每隔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. 【SDOI2015】星际战争

    #include<cstdio> #include<queue> using namespace std; const int M = 10000; const double ...

  2. 模拟浏览器与服务器交互(简易TomCat框架)

    模拟浏览器发送请求到服务器获取资源的思想和代码实现 浏览器发送请求到服务器获取资源的流程和概念 日常我们使用的浏览器,底层都是帮我们做了很多事情,我们只需要用,比如输入www.baidu.com,就可 ...

  3. 如何免费获取高清动图并将其插入到Markdown中

    一.发现问题 我在做excel笔记的时候,想要动态展示操作excel的过程,由于我平时的笔记都是使用markdown记录,所以要在md文件中插入动图. 二.解决问题 细化问题 1.如何将动图插入到md ...

  4. mysql 百万计数据导入--Load data infile

    百万计数据导入MySQL时候如果是每条数据都 insert 会很慢 mysql> set global local_infile = 1; mysql> select @@local_in ...

  5. SAP 采购订单行项目客制化字段增强

    需求: 在采购订单行项目中新增客制化字段,区分采购的项目中的物料是量产还是研发物料 开发步骤 主要使用二代增强出口:MM06E005 创建增强项目 事务码T-code:CMOD 创建项目ZEMM001 ...

  6. Centos 7.9 基于二进制文件部署kubernetes v1.25.5集群

    简述 Kubernetes(简称为:k8s)是Google在2014年6月开源的一个容器集群管理系统,使用Go语言开发,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器 ...

  7. mysql拼接多条字段

    转 未合并情况 SELECTa.id,b.name AS "role"FROM sys_user aINNER JOIN sys_user_role c ON a.id=c.use ...

  8. @click,@click.native失效问题(原生js代码innerHTML中填充vue页面,页面中点击事件失效)

    解决方式: window.mapVue = this <input onclick="window.mapVue.locusPath()" type="button ...

  9. wendows 批量修改文件后缀(含递归下级)

    for /r %%a in (*.jpg)do ren "%%a" "%%~na.png" //-- or :for /r %a in (*.jpg)do re ...

  10. MYSQL启动:'服务没有相应控制功能'问题解决

    启动 MySQL 服务,此处若是显示错误'服务没有相应控制功能' 尝试解决方法:访问如下网站: https://cn.dll-files.com/vcruntime140_1.dll.html  下载 ...