我正在寻找创建一个ListView来填充指定目录中的许多图像。这一切都很好,但令人讨厌的是我似乎无法找到一种方法来让ListView包装,或者显示在多个列中(此时它只是每行一个图像,考虑到没有文本,这很烦人。)
使用Swing的JList,这可以通过jList.setLayoutOrientation(JList.HORIZONTAL_WRAP);
完成,但我在JavaFX 2中看不到相同的内容 - 我错过了什么?
答案 0 :(得分:7)
由于我遇到了完全相同的问题,我也在这方面进行了调查。如果您只有很少的项目,TilePane可能是一个解决方案,但如果您有很多项目,它将变得非常慢并消耗大量资源。 (根据设计,TilePane不支持UI虚拟化。也就是说,重用/回收不再在视口中的项目节点。)
因此,我的想法是继承ListView并创建一个WrappedListView,但我遇到了一个完美的解决方案:ControlsFX是一个JavaFX控件的开源集合,它碰巧有一个GridView控件,支持虚拟化。
ControlsFX GridView
以下是ControlsFX中所有控件的概述。 http://fxexperience.com/controlsfx/features/
为了下载库,他们在开发站点中提供了Maven Dependency等标准方法:https://bitbucket.org/controlsfx/controlsfx/
答案 1 :(得分:3)
javafx.scene.control.ListView
不支持此类功能。
鉴于您只是将图像放入其中,您可能只想使用TilePane
来显示它们。