使用键盘滚动弹出列表时,如何使JComboBox所选项目不被更改 [英] How to make JComboBox selected item not changed when scrolling through its popuplist using keyboard

查看:151
本文介绍了使用键盘滚动弹出列表时,如何使JComboBox所选项目不被更改的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在面板中有一个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所选项目不被更改的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆