在什么情况下箭头键不会穿过组合框?

时间:2012-05-20 22:11:02

标签: java swing jcombobox

我有一个简单的JComboBox

JComboBox comboBox = new JComboBox();
comboBox.setModel(new DefaultComboBoxModel(new String[] {"foo", "bar"}));

在某些情况下,箭头键适用于弹出窗口中的列表遍历。但在某些情况下,箭头键不起作用(在这些情况下不会引起异常)。

我已经缩小到箭头键不起作用的情况。

我想知道什么可能导致箭头键不起作用,以便我可以限制我的焦点区域。对不起,我不能为这个问题提供SSCCE。

1 个答案:

答案 0 :(得分:2)

我在自定义自动完成组合框中删除了箭头键的ActionMap,该组合扩展了JComboBox

getActionMap().getParent().remove("selectNext");

当用户输入的某些值不在列表中并继续时,我没有重置操作键。这导致应用程序中的所有JCobobox停止响应箭头键。

我最初保存了selectNext的操作,并在上面提到的错误事件中重置了操作以使代码正常工作

Action selectNextAction = getActionMap().getParent().get("selectNext");
//...
getActionMap().getParent().put("selectNext", selectNextAction);