java - 使用键盘滚动弹出列表时如何使 JComboBox 所选项目不更改

标签 java swing keyboard properties jcombobox

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

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

最佳答案

我相信你应该能够做到:

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

在你创建你的 comboBox 实例到 get this functionality 之后

关于java - 使用键盘滚动弹出列表时如何使 JComboBox 所选项目不更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5194786/

相关文章:

java - jshell 命令 `/open` 可以相对于包含脚本的文件夹而不是工作目录工作吗?

java - 安卓证书问题

java - 在让 Swing 组件被垃圾收集之前,我是否需要释放它们?

java - 如何让 toString 方法正确打印 2 个带分数的结果?

ios - 快速处理键盘重叠

java - 编译错误 : cannot convert Set<Set<T>> to Set<Map. Entry<T, Set<T>>>

java - Android空白 Activity 上的ClassNotFoundException

java - 从数据库中向表中添加值

ios - 在 iOS 中禁用日文键盘的汉字自动完成 (henkan)?

c++ - 使用 Windows API 和 WM_KEYDOWN C++ 时按键输入滞后