我正在动态更改组合框中的项目。除了根据第一次单击组合框时可见行的数量保持固定外,它工作正常。
示例:组合框项目设置为A和B.当我单击组合框时,它显示2行A和B. 然后我动态地将项目更改为C,D和E.当我单击组合框时,它显示2行C和D以及滚动条。
我已经设置了
comboBox.setVisibleRowCount(10);
但它只显示2行和滚动条。
如果我反其道而行之,首先将项目设置为C,D和E,然后单击组合框;它显示了三个可见的行。 然后我动态地将项目更改为A和B.当我单击组合框时,它显示3行! A,B和一行空白。
答案 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不会使属性失效。