Jas*_*n S 3 java macos keyboard-events
我正在尝试使用InputMap/ActionMap拦截删除键.我让它与Enter一起工作,但它似乎没有回复删除(这是在Mac OSX上,所以我想知道这是否是问题的一部分).
我究竟做错了什么?
private void setupKeyBindings(final JList jlist) {
String delAction = "deleteItems";
KeyStroke delKey = KeyStroke.getKeyStroke("DELETE");
jlist.getInputMap().put(delKey, delAction);
jlist.getActionMap().put(delAction, new AbstractAction()
{
@Override public void actionPerformed(ActionEvent e) {
System.out.println("delete pressed");
doDelete(jlist);
}
});
String enterAction = "useItems";
KeyStroke enterKey = KeyStroke.getKeyStroke("ENTER");
jlist.getInputMap().put(enterKey, enterAction);
jlist.getActionMap().put(enterAction, new AbstractAction()
{
@Override public void actionPerformed(ActionEvent e) {
System.out.println("enter pressed");
}
});
}
Run Code Online (Sandbox Code Playgroud)
嗯.我的Mac上的"删除"键似乎映射到KeyListener键码8,我认为它是退格键.(我的Mac键盘上只有一个删除键,而不是一个单独的退格键,而两者都有Windows PC键盘)
以下似乎适用于Mac映射到Command-Delete:
KeyStroke delKey = KeyStroke.getKeyStroke(
KeyEvent.VK_BACK_SPACE, InputEvent.META_MASK);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7213 次 |
| 最近记录: |