JavaFX2中的多列(包装)ListView

JavaFX2中的多列(包装)ListView,listview,javafx-2,javafx,Listview,Javafx 2,Javafx,我希望创建一个ListView来填充指定目录中的大量图像。这一切都很好,但令人恼火的是,我似乎找不到一种方法来包装ListView,或将其显示在多个列中(目前每行只有一个图像,考虑到没有文本,这很恼人。) 使用Swing的JList,这可以通过JList.setLayoutOrientation(JList.HORIZONTAL_WRAP)实现,但我在JavaFX2中没有看到任何等价物-我缺少什么吗?JavaFX.scene.control.ListView不支持此类功能 鉴于您只是将图像放入其

我希望创建一个ListView来填充指定目录中的大量图像。这一切都很好,但令人恼火的是,我似乎找不到一种方法来包装ListView,或将其显示在多个列中(目前每行只有一个图像,考虑到没有文本,这很恼人。)


使用Swing的JList,这可以通过
JList.setLayoutOrientation(JList.HORIZONTAL_WRAP)实现,但我在JavaFX2中没有看到任何等价物-我缺少什么吗?

JavaFX.scene.control.ListView
不支持此类功能


鉴于您只是将图像放入其中,您可能只想使用
TilePane
来显示它们。

由于我遇到了完全相同的问题,我也在这方面进行了研究。如果您只有很少的项目,TilePane可能是一个解决方案,但是如果您有很多项目,它将变得非常缓慢,并消耗大量资源。(TilePane在设计上不支持UI虚拟化。也就是说,重用/回收不再在视口中的项目节点。)

因此,我的想法是将ListView子类化并创建一个WrappedListView,但我偶然发现了一个完美的解决方案:ControlsFX是JavaFX控件的开源集合,它碰巧有一个GridView控件,支持虚拟化

ControlsFX GridView

下面是ControlsFX中所有控件的概述。


为了下载库,他们在开发站点中提供了标准方式,如Maven依赖:

自定义ListView的cell factory,例如包括HBox。并将图像和文本放入这个HBox。