我试图使用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