实现思路,启动一个线程每隔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. POJ1737 连通图

    一句话题意:求一个 \(n\) 点带编号的连通图数量. 吐槽一下:好好一道计数 dp 为什么不加取余????逼着选手写高精度的出题人应该拎出去烧--哦楼天城是出题人是吧哦当我没说我什么都没说我现在就把 ...

  2. 钓鱼攻击之:Lnk 文件钓鱼

    钓鱼攻击之:Lnk 文件钓鱼 目录 钓鱼攻击之:Lnk 文件钓鱼 1 Lnk 钓鱼小试牛刀 2 Lnk 图标处理 3 进阶利用方式 3.1 PDF利用 3.2 txt利用,突破Lnk文件目标字符长度限 ...

  3. CCRD_TOC_2015_EULAR专刊

    中信国健风湿免疫临床通讯 EULAR2015专刊●目录 脊柱关节炎专题 OP0037 ASAS-CoMoSpA研究: 评价SpA不同分类标准的表现 OP0170 NSAIDs以优化剂量治疗中轴型SpA ...

  4. 代码随想录算法训练营day08 | leetcode 344.反转字符串/541. 反转字符串II / 剑指Offer05.替换空格/151.翻转字符串里的单词/剑指Offer58-II.左旋转字符串

    基础知识 // String -> char[] char[] string=s.toCharArray(); // char[] -> String String.valueOf(str ...

  5. 配置 Vite 自动导入 ElementPlus 组件、函数、Icons、样式

    使用 Vite 的自动导入的前提是项目是 TS 项目,JS 项目使用 Vite 自动导入不生效.安装以下 5 个包到 devDependencies: cnpm i -D unplugin-icons ...

  6. IDEA插件Apifox,一键自动生成接口文档!

    有关Apifox软件之前写过一篇文章: 接口测试神器Apifox,亲测好用! 如何一键自动生成数据库文档之前也写过一篇文章: 数据库界的Swagger:一键生成数据库文档! 一.Apifox插件的优势 ...

  7. PostgreSQL 实现快速删除一个用户

    一.具体方法 一般情况下直接执行 drop role xxx; 就可以把这个用户删除.但是很多时候会因为用户有依赖而报错. 二.权限依赖 postgres=# create role test wit ...

  8. Java项目常用的异常处理

    一.常见异常形式 1.空指针异常(java.lang.nullpointerexception)发生该情况一般是字符串变量未初始化,数组未初始化,类对象未初始化等.还有一种情况是当该对象为空时你并没有 ...

  9. 红米note9 刷开机第一屏logo

    参考:https://romprovider.com/change-boot-logo-redmi-9-prime/ 工具:https://sites.google.com/site/kadanuti ...

  10. USACO2023Jan游记

    由于学校要求,过来打 USACO. 似乎要求起码升到白金? 由于是第一次打,只有从铜组开始了. Brouze 简单题,就给核心代码. 30min AK. Leaders http://usaco.or ...