使用键盘在弹出菜单中滚动时,如何使JComboBox选定项保持不变


问题内容

我在面板中有一个JComboBox组件,并在其上附加了ItemListener。但是每次上/下键按下时(在打开的弹出列表中滚动时)都会触发它。我想在用户通过按Enter键接受选择后更改选择的值。

使用鼠标时不是这种情况。当我将鼠标移到组合框的列表上方时,突出显示的是鼠标指针,但是直到我按下鼠标按钮,所选项目才会更改。我希望键盘具有相同的行为,即,通过向上/向下箭头移动突出显示不会更改所选的项目,但是按Enter会更改。


问题答案:

我相信您应该可以:

comboBox.putClientProperty("JComboBox.isTableCellEditor", Boolean.TRUE);

创建comboBox实例以获取此功能后