gpt4 book ai didi

java - 用于在 Java Swing 中删除的 KeyStroke

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:42:49 24 4
gpt4 key购买 nike

我正在尝试使用 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");
}
});
}

最佳答案

嗯。我 Mac 上的“删除”键似乎映射到我认为是退格键的 KeyListener 键码 8。 (我的 Mac 键盘上只有一个删除键,没有单独的退格键,而 Windows PC 键盘两者都有)

以下似乎适用于 Mac 以映射到 Command-Delete:

KeyStroke delKey = KeyStroke.getKeyStroke(
KeyEvent.VK_BACK_SPACE, InputEvent.META_MASK);

关于java - 用于在 Java Swing 中删除的 KeyStroke,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4881262/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com