我正在研究一个 JTexfield,它将自己的文本设置为当焦点放在窗口上时按下的键的名称。我设法让它与代码只有一句话:
@Override
public void keyReleased(KeyEvent ev) {
if (ev.getKeyCode() != 0) {
keyTrigger = ev.getKeyCode();
txtTrigger.setText(ev.getKeyText(keyTrigger));
}
}
@Override
public void keyTyped(KeyEvent ev) {
txtTrigger.setText("");
}
但是,当您按 F1--12 或 Ctrl 之类的特殊键时,它看起来很糟糕,因为它保留了最后键入的非特殊键(例如,如果您按“T”然后按“Ctrl”,则该字段中的文本一直是“ t' 直到您释放 'Ctrl' 键)。
这是迄今为止 JTextField 的代码:
txtTrigger = new JTextField();
txtTrigger.setColumns(10);
txtTrigger.addKeyListener(this);
txtTrigger.setBounds(80, 5, 64, 20);
contentPane.add(txtTrigger);
我想要的是在您释放密钥之前该字段为空。我怎样才能让应用程序以这种方式工作?