滚动JComboBox弹出窗口会隐藏它

Béa*_*tat 5 java swing mousewheel jcombobox

我的客户抱怨JComboBox弹出窗口经常在JComboBox弹出窗口上使用滚动而没有垂直滚动条时关闭.(他似乎意外地使用滚动它,因为他正在使用Apple Magic Mouse.)

有什么方法可以防止这种情况发生?

我知道它与ComboBoxUI有关,但我想要一些指针从哪里开始.BasicComboPopup.handler是私有的(不可重用),我没有看到任何与BasicComboPopup中的任何MouseWhellListener相关的代码.

tra*_*god 6

源代码所示,BasicPopupMenuUI包含一个嵌套类MouseGrabber,它实现了AWTEventListener接口.该收据MouseEvent.MOUSE_WHEELeventDispatched()取消弹出的函数关系isInPopup().我知道没有简单的方法来打败这种行为.

根据经验,此示例show()从a的actionPerformed()处理程序调用JButton; 鼠标滚轮事件被忽略.这可能是您的用户的合理替代方案,可能与合适的ActionEvent修改器蒙版结合使用.

相反,这个例子show()在响应isPopupTrigger()中调用MouseAdapter; 正如所料,鼠标滚轮事件取消弹出窗口.