问题描述
我在面板中有一个JComboBox组件,并且附加了ItemListener。但是每次上/下按键后都会被触发(当滚动打开弹出列表时)。我希望在用户接受选择后通过按Enter键来更改所选值。
I have a JComboBox component in the panel and ItemListener attached to it. But it gets fired after every up/down keypress (when scrolling though opened popup list). I want to change the selected value after the user accepts selection by pressing for example Enter key.
使用鼠标时不是这种情况。当我将鼠标移到组合框的列表上时,突出显示在鼠标指针之后,但是在我按下鼠标按钮之前,所选项目不会更改。我想对键盘有相同的行为,即通过向上/向下箭头移动高亮显示不会改变所选项目,但是按Enter确实。
This is not a case when using mouse. When I move mouse over the combobox's list the highlight follows mouse pointer, but selected item is not changed until I press the mouse button. I would like to have the same behavior for keyboard, i.e. moving highlight via up/down arrow does not change selected item, but pressing Enter does.
推荐答案
我相信你应该可以这样做:
I believe you should be able to do:
comboBox.putClientProperty("JComboBox.isTableCellEditor", Boolean.TRUE);
在您创建 comboBox
实例后
这篇关于使用键盘滚动弹出列表时,如何使JComboBox所选项目不被更改的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!