[英]Find out which keystroke event is called
I'm making a class base on the java robot class. 我正在基于Java机器人类创建一个类。 The purpose of this is to be able to send thing like that : "I like bananas, but not apple$ (however butter*)"
这样做的目的是能够发送这样的信息:“我喜欢香蕉,但不喜欢apple $(但是黄油*)”
when looking at : http://docs.oracle.com/javase/6/docs/api/constant-values.html#java.awt.event.KeyEvent.VK_S 查看时: http : //docs.oracle.com/javase/6/docs/api/constant-values.html#java.awt.event.KeyEvent.VK_S
I can see several event, so I don't know wich one to choose. 我可以看到几个事件,所以我不知道该选择哪一个。 for example "*" is called VK_ASTERISK or VK_MULTIPLY.
例如,“ *”称为VK_ASTERISK或VK_MULTIPLY。
Therefor I'd like to display on the console the name of the keyevent triggered when I press a button. 因此,我想在控制台上显示按下按钮时触发的按键事件的名称。
is this possible? 这可能吗?
(without making a huge switch testing all known event) (无需进行大量测试所有已知事件的切换)
Thanks. 谢谢。
The getSource()
function should help you in this. getSource()
函数应该可以帮助您。
http://docs.oracle.com/javase/6/docs/api/java/util/EventObject.html#getSource() http://docs.oracle.com/javase/6/docs/api/java/util/EventObject.html#getSource()
I made this from part found here and there, works fine 我从这里到那里找到的零件制成的,效果很好
import java.awt.BorderLayout;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class MainClass {
public static void main(String args[]) throws Exception {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTextField nameTextField = new JTextField();
frame.add(nameTextField, BorderLayout.NORTH);
KeyListener keyListener = new KeyListener() {
public void keyPressed(KeyEvent keyEvent) {
printIt("Pressed", keyEvent);
}
public void keyReleased(KeyEvent keyEvent) {
//printIt("Released", keyEvent);
}
public void keyTyped(KeyEvent keyEvent) {
//printIt("Typed", keyEvent);
}
private void printIt(String title, KeyEvent keyEvent) {
int keyCode = keyEvent.getKeyCode();
String keyText = KeyEvent.getKeyText(keyCode);
System.out.println(title + " : " + keyText + " / " + keyEvent.getKeyChar() + " code = " + keyEvent.getKeyCode());
}
};
nameTextField.addKeyListener(keyListener);
frame.setSize(250, 100);
frame.setVisible(true);
}
}
just run it, press a key and look at your eclipse console 只需运行它,按一个键,然后查看您的Eclipse控制台
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.