Java 重新定义JRadioButton中Tab键的行为?
我试图重新定义JRadioButton中Tab键的行为,使其行为类似于其他GUI应用程序中的单选按钮,即:Java 重新定义JRadioButton中Tab键的行为?,java,swing,radio-button,keyboard-events,Java,Swing,Radio Button,Keyboard Events,我试图重新定义JRadioButton中Tab键的行为,使其行为类似于其他GUI应用程序中的单选按钮,即: 箭头键在ButtonGroup(按钮组)中的单选按钮之间循环(我有这个功能) 选项卡将焦点移动到组中最后一个单选按钮后的下一个组件(问题区域) 我有一个操作,它执行必要的步骤来找到要聚焦的正确组件和所有内容,但是向InputMap添加条目似乎不起作用: getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_TAB, 0), "jump
- 箭头键在ButtonGroup(按钮组)中的单选按钮之间循环(我有这个功能)
- 选项卡将焦点移动到组中最后一个单选按钮后的下一个组件(问题区域)
getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_TAB, 0), "jumpNext");
getActionMap().put("jumpNext", new JumpNextAction());
我在选项卡的输入映射中的条目似乎被忽略,因为该操作从未执行过。我猜想这可能是因为KeyboardFocusManager或其他相关的东西在Tab事件到达组件的输入映射之前正在消费它
关于如何停止此行为并使用自定义选项卡行为,您有什么想法吗?由于KeyboardFocusManager,它可能无法像您所说的那样访问inputmap,但是如果您在其上放置一个较低级别的keyListener,我打赌您可以拦截并使用()事件,以便KeyboardFocusManager无法处理它 或者,您可以在单选按钮上调用JComponent.setFocusTraversalKeys()方法,删除默认的tab键,然后inputmap可以像您尝试的那样处理它 带有空集合的setFocusTraversalKeys()成功了!非常感谢。