JavaFX ComboBox 选择错误

标签 java user-interface javafx combobox

我似乎总是对 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/

相关文章:

java - Hudson 2.0.1 和 Maven 2.2.1 找不到符号错误

jquery - UI 选项卡旋转窃取焦点

Java FX 多 Windows 应用程序

java - 如何在JavaFX中的两个AreaCharts之间填充?

java - 将 JavaFX WebView 调整为文档正文所需的最小大小

java - 如何使用 do while 循环

java - 使用dynamicInsert持久化后自动更新数据库中的默认值字段

java - 尝试将 InputStream 放入 Amazon S3 时进程终止

java - 将我的 JMenus 放在自己的类中更好还是全部放在同一个类中更好?

python - 在 Python Tkinter 中删除标签?