实现思路,启动一个线程每隔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();
}
}
} }

最新文章

  1. VS2013中web项目中自动生成的ASP.NET Identity代码思考
  2. Mersenne twister 随机数算法实现 in Scheme
  3. Java SCP copy local file to remote implementation
  4. loadrunner统计字符串中指定字符出现的次数
  5. 使用Visual Studio下自带的SQL Server Express
  6. Hadoop学习11--Ha集群配置启动
  7. 高通APQ8074 spi 接口配置
  8. Unable to open serial port /dev/ttyUSB0
  9. Kung fu
  10. 10个最佳的网站和App开发工具
  11. (搬运工)国内顺利使用Google的另类技巧
  12. js的eval方法
  13. 使用Entity Framework 4进行代码优先开发
  14. java之生成可重复执行的sql脚本
  15. CSS3 border-radius 圆角
  16. Elasticsearch 5.x 字段折叠的使用
  17. pycharm开发django项目 static报404解决方法
  18. 自适应图片宽度的jQuery焦点幻灯轮播代码
  19. 【node错误】/usr/bin/env: node: No such file or directory
  20. 在Unity中实现屏幕空间反射Screen Space Reflection(2)

热门文章

  1. JZOJ 5843.B
  2. 基于电商直播SDK快速实现一个淘宝直播APP【内附源码】
  3. [COCI2015-2016#2] VUDU
  4. rin和快速迭代
  5. css3自动滚动
  6. Python接口自动化之pymysql数据库操作
  7. oracle快速将表缓存到内存
  8. Django中models的字段
  9. ABAP SORT 递减/递增
  10. Python控制台输出字体颜色及背景设置