2016-03-02 59 views
1

我似乎总是有与JavaFX的组合框控件,从而有时当我选择一个项目,我得到一个错误,如一个问题:JavaFX的组合框选择错误

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更新51。现在刚更新到Jdk8 Update 73,该错误不再存在。此外,以前更新51当我第一次打开组合框时,默认情况下它有一个滚动条,它会在打开两次后消失。从更新73开始,这不再发生,默认情况下它没有滚动条。我认为这可能是这个bug与之相关的。

是否有人能够证实这一点,并且我对更新更改的观察确实如此?

+0

当选定项目更改时是否有代码正在运行?可能会改变物品清单的东西? JavaFX ComboBox似乎对这些更改非常敏感。如果你有这样的事情,提供相关的代码可能有助于建议解决它的方法。 – Itai

+0

可以共享代码。 –

+0

这与代码运行无关 - 每当我拥有一个ComboBox时,都会发生这种情况,也就是说例如使用来自ObservableList的一些硬编码项目填充。 – Tranquility

回答

0

以下只是一个小窍门,能够阻止JavaFX中显示的警告。

combo.setVisibleRowCount(<size of list> -1) 

这将减少可视窗口的大小,但如果你的名单比2更长的时间,这不会影响显著程序的美观性。

注意:此修复最初是几个月前发布的。不幸的是,我目前无法找到参考。