如何检测Windows key
的{{1}}修饰符?我添加了代码:
KeyEvent
但问题是,当我使用textField.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent e) {
if ((e.getKeyCode() & KeyEvent.VK_ESCAPE) == KeyEvent.VK_ESCAPE) {
textField.setText("");
}
}
});
并尝试使用Windows zoom
退出时,如果焦点位于Win + Escape
,则其内容会清除。我尝试按TextField
进行过滤,但会返回e.getModifiersEx()
。我发现的唯一方法是检测0
是否被按下,是创建Windows
字段并在按下/释放boolean
时更改其值。
那么,有没有办法让Windows
来自Windows
事件的KeyEvent
关键压力状态?
答案 0 :(得分:0)
我自己使用的方式:
AbstractAction escapeAction = AbstractAction() {
public void actionPerfomed(ActionEvent e) {
setText("");
}
}
textField.addCaretListener(new CaretListener() {
@Override
public void caretUpdate(CaretEvent e) {
if (textField.getText() == null || textField.getText().isEmpty()) {
textField.getActionMap().remove("escape");
textField.getInputMap().remove(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0));
} else {
textField.getActionMap().put("escape", escapeAction);
textField.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), escapeAction);
}
}
});