私はInputMap/ActionMapを使って削除キーを傍受しようとしています。私はそれがEnterで動作するようになるが、それは削除で応答していないようだ(これはMac OSX上にあるので、それが問題の一部であるのだろうか)。Java Swingのキーストローク
私は間違っていますか?
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