我試圖使用InputMap/ActionMap攔截刪除鍵。我將它與Enter一起工作,但它似乎沒有迴應刪除(這是在Mac OSX上,所以我想知道這是否是問題的一部分)。在Java Swing中刪除的KeyStroke
我在做什麼錯?
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");
}
});
}
你試過`KeyStroke.getKeyStrokeForEvent(KeyEvent.VK_DELETE) `?這是在黑暗中拍攝的,但是`KeyStroke.getKeyStroke(「BACKSPACE」)``怎麼樣? – earldouglas 2011-02-02 23:45:05