他们没有setMnemonic(),就像Buttons那样。
我正在尝试构建一些自动UI测试。使整个UI键盘驱动对此至关重要。使用助记符(加速器或快捷方式)在小部件之间移动是一种经过验证的方法。
我似乎无法弄清楚如何为上述组件设置助记符。 有一些方法可以强制键盘导航,在元素之间进行选项卡或手动注册全局加速器。但是,如果我必须走得那么远,我至少会对最佳做法提出一些意见。
<编辑>
camickr是对的。我只需要放松并完成阅读有关该主题的文档。然后变得非常简单。这是任何人进行搜索的最终结果。
treeWidget
.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)
.put(KeyStroke.getKeyStroke(LIST_MN,InputEvent.ALT_DOWN_MASK), "focus_jtree");
treeWidget
.getActionMap()
.put("focus_jtree", new AbstractAction() {
@Override
public void actionPerformed(ActionEvent event) {
treeWidget.requestFocusInWindow();
}});
答案 0 :(得分:3)
答案 1 :(得分:1)
我目前的解决方案是
JLabel jLabel = new JLabel("List");
jLabel.setDisplayedMnemonic(LIST_MN);
jLabel.setLabelFor(treeWidget);
add(jLabel);
add(treeWidget);
似乎可以完成这项工作,但我的小部件并不总是有标签。所以我只是添加标签来为他们提供简单的助记符。并且标签通常不包含助记符。