我有一个简单的JComboBox
JComboBox comboBox = new JComboBox();
comboBox.setModel(new DefaultComboBoxModel(new String[] {"foo", "bar"}));
在某些情况下,箭头键适用于弹出窗口中的列表遍历。但在某些情况下,箭头键不起作用(在这些情况下不会引起异常)。
我已经缩小到箭头键不起作用的情况。
我想知道什么可能导致箭头键不起作用,以便我可以限制我的焦点区域。对不起,我不能为这个问题提供SSCCE。
答案 0 :(得分:2)
我在自定义自动完成组合框中删除了箭头键的ActionMap,该组合扩展了JComboBox
getActionMap().getParent().remove("selectNext");
当用户输入的某些值不在列表中并继续时,我没有重置操作键。这导致应用程序中的所有JCobobox停止响应箭头键。
我最初保存了selectNext
的操作,并在上面提到的错误事件中重置了操作以使代码正常工作
Action selectNextAction = getActionMap().getParent().get("selectNext");
//...
getActionMap().getParent().put("selectNext", selectNextAction);