资讯专栏INFORMATION COLUMN

扫描枪自带回车的Java模拟

qc1iu / 1267人阅读

摘要:扫描枪读取的数据,通常自带回车。开发相关系统时,需要编写一个模拟扫描枪的。将作为按钮的事件监听器。设计时,就有两个选项在后是否自带回车。推荐一款适合二次开发的扫描枪迷你条码扫描枪

扫描枪读取的数据,通常自带回车。开发相关系统时,需要编写一个模拟扫描枪的QRReaderDialog。java.awt.RobotJTextField作为数据接受控件,在它上面按下Enter键,可以监听Action事件或Key事件;而“按下Enter键”,就需要用到java.awt.Robot。一个小例子:在Netbeans中编写的InputDemo

package demo;
 
import com.sun.glass.events.KeyEvent;
import java.awt.Robot;
 
/**
 *
 * @author yqj2065
 */
public class InputDemo extends javax.swing.JFrame {
 
    private final Robot robot;
 
    public InputDemo() throws Exception {
        robot = new Robot(); //创建一个robot对象
        initComponents();
    }
 
    public void keyPress(int key) {
        robot.delay(50);
        robot.keyPress(key);
        robot.keyRelease(key);
    }
 
                         
    private void initComponents() {
        //略
    }
    private void input_TextFieldKeyPressed(java.awt.event.KeyEvent evt) {                                           
        if (KeyEvent.VK_ENTER == evt.getKeyCode()) {
            KeyPressed_Label.setText(input_TextField.getText());
 
        }
    }                                          
 
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        int i = (int) (Math.random() * 10000000) + 1;
        String str = i + "二维码数据";
        input_TextField.setText(str);
        input_TextField.requestFocus();
        this.keyPress(java.awt.event.KeyEvent.VK_ENTER);
    }                                        
 
    private void input_TextFieldActionPerformed(java.awt.event.ActionEvent evt) {                                                
        ActionPerformed_Label.setText(input_TextField.getText());
    }                                               
 
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {//略
 
    }
 
    // Variables declaration - do not modify                     
    private javax.swing.JLabel ActionPerformed_Label;
    private javax.swing.JLabel KeyPressed_Label;
    private javax.swing.JTextField input_TextField;
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    // End of variables declaration                   
}

2.QRReaderDialog与MyJTextField

QRReaderDialog是一个简单的对话框,点击其上的Read once按钮,产生一条字符串——表示读取的二维码信息。MyJTextField将作为Read once按钮的Action事件监听器。设计MyJTextField时,就有两个选项:MyJTextField在setText(qrCode)后是否自带回车。如果自带回车,装箱操作窗口将监听MyJTextField的Action事件或Key事件;不自带回车,装箱操作窗口将监听MyJTextField的内容变化事件,即对MyJTextField对象inputTextField,调用下面的语句:inputTextField.getDocument().addDocumentListener(new MyDocumentListenerImpl());两种方式都可以达到目的,前者使用java.awt.Robot,后者要自定义MyDocumentListener implements javax.swing.event.DocumentListener ,并给出其实现类。

package qrms.ui.util;
import javax.swing.event.DocumentEvent;
 
/**
 *
 * @author yqj2065
 */
public abstract  class MyDocumentListener implements javax.swing.event.DocumentListener {
    public abstract void textChangedHandle();
 
    @Override
    public void insertUpdate(DocumentEvent e) {
        textChangedHandler();
    }
 
    @Override
    public void removeUpdate(DocumentEvent e) {
    }
 
    @Override
    public void changedUpdate(DocumentEvent e) {
    }
 
}

推荐一款适合二次开发的扫描枪:MS3398迷你条码扫描枪

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/67337.html

相关文章

  • 通过Web安全工具Burp suite找出网站中XSS漏洞实战(二)

    摘要:一背景笔者月份在慕课网录制视频教程跨站漏洞加强安全里面需要讲到很多实战案例,在漏洞挖掘案例中分为了手工挖掘工具挖掘代码审计三部分内容手工挖掘篇参考地址为快速找出网站中可能存在的漏洞实践一本文主要记录利用安全工具进行漏洞挖掘部分,分为了设置代 一、背景 笔者6月份在慕课网录制视频教程XSS跨站漏洞 加强Web安全,里面需要讲到很多实战案例,在漏洞挖掘案例中分为了手工挖掘、工具挖掘、代码审...

    klinson 评论0 收藏0
  • 练习项目备选清单

    摘要:练习项目备选清单文件下载器功能概要设计实现新建下载功能以为基础给出下载链接可以启动下载任务实现局域网内下载传输文件以单线程下载方式实现附加功能支持断点续传实现多线程下载实现下载参考技术套接字编程多线程编程音视频播放器功能概要设计实现播放常见 练习项目备选清单 Utilities 1. 文件下载器 功能概要设计: 实现新建下载功能(以ftp为基础) 给出下载链接可以启动下载任务 实现局...

    guyan0319 评论0 收藏0
  • 练习项目备选清单

    摘要:练习项目备选清单文件下载器功能概要设计实现新建下载功能以为基础给出下载链接可以启动下载任务实现局域网内下载传输文件以单线程下载方式实现附加功能支持断点续传实现多线程下载实现下载参考技术套接字编程多线程编程音视频播放器功能概要设计实现播放常见 练习项目备选清单 Utilities 1. 文件下载器 功能概要设计: 实现新建下载功能(以ftp为基础) 给出下载链接可以启动下载任务 实现局...

    peixn 评论0 收藏0
  • 详细分析Java中断机制

    摘要:没有提供一种安全直接的方法来停止某个线程,但是提供了中断机制。中断的原理中断机制是一种协作机制,也就是说通过中断并不能直接终止另一个线程,而需要被中断的线程自己处理中断。线程的中断状态由该方法清除。测试线程是否已经中断。 1. 引言 当我们点击某个杀毒软件的取消按钮来停止查杀病毒时,当我们在控制台敲入quit命令以结束某个后台服务时……都需要通过一个线程去取消另一个线程正在执行的任务...

    bergwhite 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<