在我的程序中,我有一个 Jbutton(名为“Clear”),用于清除 GUI 中的多个文本字段。我想用 Escape 键替换此按钮,以便按 Escape 键与按该按钮相同。(我不想在我的程序中使用那个 Jbutton)
问问题
612 次
3 回答
3
基本上,您想从使用键绑定开始。
现在,就我个人而言,我会在您的“清除”按钮上附加一个绑定,这样用户就有两个选择……例如……
JButton clear = new JButton("Clear");
InputMap im = clear .getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
ActionMap am = clear .getActionMap();
im.put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "clear");
am.put("clear", new ClearFieldsAction());
于 2013-09-12T06:39:59.233 回答
0
如果要移除按钮并监听孔应用程序的按键事件,可以创建一个
并在以下位置注册此 EventQueue
Toolkit.getDefaultToolkit().getSystemEventQueue().push(INSTANCE_EVENT_QUEUE);
方法
受保护的无效调度事件(AWTEvent e)
将获得您可以处理的 AWTEvent。喜欢:
@Override
protected void dispatchEvent(AWTEvent e) {
// handle event and/or
super.dispatchEvent(e);
}
您处理的关键事件
private void handleAWTEvent(AWTEvent event) {
if (event instanceof KeyEvent) {
KeyEvent keyEvent = (KeyEvent)event;
if (keyEvent.getID() != KeyEvent.KEY_PRESSED) {
return;
}
if (keyEvent.isAltDown() ^ keyEvent.isControlDown() && !keyEvent.isShiftDown()) {
...
于 2013-09-12T06:43:58.673 回答
0
试试这个,它对我有用
InputMap im = clear.getRootPane().getInputMap(...
ActionMap am = clear.getRootPane().getActionMap(...
于 2020-04-24T09:38:57.570 回答