日期:2014-05-20  浏览次数:20761 次

java 或swing 关于键盘监听
小弟要做一款身份证读卡器PC端软件。
假设PC端现有一需要填写身份信息软件(身份录入系统),如姓名,性别,年龄。
以往是操作员对照身份证手动输入。
现在有一身份证读卡器,各项信息在PC端已实现读取,保存等。
现问题是如何和身份录入系统对接,实现一刷身份证,改软件自动填充。
有想过JAVA写个后台监听键盘程序,如监听到ALT+N就自动填充姓名。

请大佬们提供一个思路,或者实现方式。以及怎么和别人的录入系统对接?

------解决方案--------------------
是要监听组合键吗?

这是CTRL+C的列子



import java.awt.Color;
import java.awt.Frame;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class Gui10 extends Panel {


public Gui10(String title) {
Frame frame = new Frame(title);

frame.setSize(200, 400);
frame.setLocationRelativeTo(null);
frame.setResizable(true);
init();
frame.add(this);
frame.setVisible(true);
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}

private void init() {
final TextArea textArea = new TextArea(10, 20);
textArea.setBackground(Color.CYAN);
textArea.setText("test");
this.add(textArea);
textArea.addKeyListener(new KeyListener() {

@Override
public void keyTyped(KeyEvent e) {
}

@Override
public void keyReleased(KeyEvent e) {
System.out.println("arg0.getModifiers()=" + e.getModifiers());
System.out.println("arg0.getKeyCode()=" + e.getKeyCode());

// CTRL+C按下
if (e.getModifiers() == 2 && e.getKeyCode() == 67) {
System.out.println("CTRL+C......");
}
}

@Override
public void keyPressed(KeyEvent e) {
}
});

}

public static void main(String[] args) {
new Gui10("demo");
}

}


------解决方案--------------------
Java;Swing程序中使用应用程序级的全局快捷键
http://www.cppblog.com/biao/archive/2010/01/31/106859.html