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

How to make JComboBox selected item not changed when scrolling through its popuplist using keyboard(使用键盘滚动其弹出列表时如何使 JComboBox 所选项目不更改)
本文介绍了使用键盘滚动其弹出列表时如何使 JComboBox 所选项目不更改的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

限时送ChatGPT账号..

我在面板中有一个 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.

推荐答案

相信你应该可以做到:

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

在您将 comboBox 实例创建为 获取此功能

after you have created your comboBox instance to get this functionality

这篇关于使用键盘滚动其弹出列表时如何使 JComboBox 所选项目不更改的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

Sending a keyboard event from java to any application (on-screen-keyboard)(将键盘事件从 java 发送到任何应用程序(屏幕键盘))
Capturing keystrokes without focus(在没有焦点的情况下捕获击键)
How can I position a layout right above the android on-screen keyboard?(如何将布局放置在 android 屏幕键盘的正上方?)
How to check for key being held down on startup in Java(如何检查在Java中启动时按住的键)
Android - Get keyboard key press(Android - 获取键盘按键)
JFormattedTextField for Double still takes characters(Double 的 JFormattedTextField 仍然需要字符)