Java JTextfield应触发所有键盘输入
我想在JTextField中触发所有键盘输入(还有strg、alt和tab)Java JTextfield应触发所有键盘输入,java,swing,keyboard,jtextfield,keylistener,Java,Swing,Keyboard,Jtextfield,Keylistener,我想在JTextField中触发所有键盘输入(还有strg、alt和tab) super.addKeyListener(new KeyListener() { @Override public void keyTyped(KeyEvent arg0) { System.out.println(arg0.getKeyChar()); } @Override public void keyReleased(KeyEvent arg0) {
super.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent arg0) {
System.out.println(arg0.getKeyChar());
}
@Override
public void keyReleased(KeyEvent arg0) {
}
@Override
public void keyPressed(KeyEvent arg0) {
}
});
KeyListener不会触发strg、alt或/和tab等键盘输入
这个案子有解决办法吗
我需要这个设置屏幕,用户可以在其中更改键,必须按下该键才能执行向前移动之类的操作。这对我来说很有效,我必须禁用遍历才能捕获
选项卡
键。
还要注意的是,像Alt
、Shift
或Control
这样的键永远不会调用keyTyped()
事件。
但是,当您使用keyPressed()
或keyreased()
事件时,可以捕捉到它们:
public class Scribble extends JFrame implements KeyListener {
public Scribble(){
this.setLayout(new BorderLayout());
JTextField field = new JTextField();
field.addKeyListener(this);
/*
* Disable tab, so we can catch it
*/
field.setFocusTraversalKeysEnabled(false);
this.add(field, BorderLayout.CENTER);
this.pack();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.setVisible(true);
}
public void keyTyped(KeyEvent e) {
System.out.println("Key typed: " + e.getKeyCode());
}
public void keyPressed(KeyEvent e) {
System.out.println("Key pressed: " + e.getKeyCode());
}
public void keyReleased(KeyEvent e) {
System.out.println("Key released: " + e.getKeyCode());
}
public static void main(String[] args) {
new Scribble();
}
}
“我想触发JTextField中的所有键盘输入(也包括strg、alt或tab)。”为什么?这为最终用户提供了什么功能?