JavaFX组合框无法刷新可见行数

时间:2014-04-15 20:38:35

标签: combobox javafx

我正在动态更改组合框中的项目。除了根据第一次单击组合框时可见行的数量保持固定外,它工作正常。

示例:组合框项目设置为A和B.当我单击组合框时,它显示2行A和B. 然后我动态地将项目更改为C,D和E.当我单击组合框时,它显示2行C和D以及滚动条。

我已经设置了

comboBox.setVisibleRowCount(10);

但它只显示2行和滚动条。

如果我反其道而行之,首先将项目设置为C,D和E,然后单击组合框;它显示了三个可见的行。 然后我动态地将项目更改为A和B.当我单击组合框时,它显示3行! A,B和一行空白。

3 个答案:

答案 0 :(得分:3)

Javafx问题跟踪器中已经提交了一个问题。 https://javafx-jira.kenai.com/browse/RT-37622

仅当组合框具有固定的单元大小时才有效。我用css做到了。

例如:

.combo-box .list-view .list-cell{

-fx-cell-size: 35;

}

答案 1 :(得分:2)

试试这个:

box.hide(); //before you set new visibleRowCount value
box.setVisibleRowCount(rows); // set new visibleRowCount value
box.show(); //after you set new visibleRowCount value

它对我有用。

答案 2 :(得分:0)

这里至少有一个解决方法:在更改项目数量之后,还将visibleRowCount更改为其他内容并返回到所需的值。这似乎触发了下拉高度的更新,尽管在我的测试中它并不总是准确的。

另外,如果将visibleRowCount更改为10,实际上没有任何反应,因为这是初始值并将其设置为10不会使属性失效。