2016-03-02 74 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更長的時間,這不會影響顯著程序的美觀性。

注意:此修復最初是幾個月前發佈的。不幸的是,我目前無法找到參考。