我似乎总是对 JavaFX 中的 ComboBox 控件有问题,有时当我选择一个项目时,我会收到如下错误:
Mar 02, 2016 1:01:34 PM com.sun.javafx.scene.control.skin.VirtualFlow addTrailingCells
INFO: index exceeds maxCellCount. Check size calculations for class com.sun.javafx.scene.control.skin.ComboBoxListViewSkin$4$1
我发现解决这个问题的唯一方法是使用 setVisibleRowCount 比填充项目的数量少一,例如如果有 5 个项目,我将可见行数设置为 4。但是,如果只有 2 个项目,那么我必须将其设置为 1,从 UI 交互性的角度来看,这并不是特别令人满意。
我不确定设置可见行数是否是真正的修复,是否可以采取其他措施来修复它,或者确实为什么会发生此错误。有人可以帮忙吗?
更新:当我遇到这个错误时,我正在运行 Jdk8 Update 51。现在刚刚更新到 Jdk8 Update 73,该错误不再存在。此外,之前在更新 51 中,当我第一次打开 ComboBox 时,默认情况下有一个滚动条,打开两次后滚动条就会消失。从更新 73 开始,这种情况不再发生,并且默认情况下没有滚动条。我认为这可能与该错误有关。
有谁能够证实这一点以及我对更新更改的观察确实如此吗?
最佳答案
以下只是一个小技巧,可以阻止 JavaFX 中显示警告。
combo.setVisibleRowCount(<size of list> -1)
这会减小可 window 口的大小,但如果您的列表长度超过 2,这不会显着影响程序的美观。
注意:此修复最初是在几个月前发布的。不幸的是,我当时无法找到引用资料。
关于JavaFX ComboBox 选择错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35748065/