当前位置: 首页 > 知识库问答 >
问题:

JavaFX 2中的多列(包装)ListView

郭弘方
2023-03-14

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

使用Swing的JList,这可以通过< code > JList . setlayoutorientation(JList。水平_换行);,但是我在JavaFX 2中没有看到对等的东西——我是不是漏掉了什么?

共有2个答案

秦皓君
2023-03-14

<code>javafx.scene.control。ListView不支持此类功能。

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

楚俊逸
2023-03-14

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

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

控件FX 网格视图

下面是ControlsFX中所有控件的概述。http://fxexperience.com/controlsfx/features/

对于下载库,他们在其开发站点中提供了标准方法,例如Maven Dependency https://bitbucket.org/controlsfx/controlsfx/

 类似资料:
  • 问题内容: JavaFX2的TableView具有“用户在运行时重新排序列”的功能。我想为我的应用程序中的一个特定表禁用此功能。 查看API文档,没有明显的API挂钩。但是,有-property。根据文档,它代表 属于此TableView的TableColumns。当用户重新排序TableView列时,此列表将更新以反映当前的视觉顺序。 希望我至少能够在发生更改后重置更改,所以我尝试添加一个侦听器

  • 问题内容: 对于最小的xs大小,即使我的列加起来等于12,如果屏幕宽度减小到某个限制之外,它们也不会按预期工作。例如:- 我希望如果减小尺寸,最后一列将堆积到屏幕末端。然而,这种情况并非如此。当屏幕减小到超过特定限制时,最后一列将朝屏幕的开头逐渐结束。我已经考虑过编写CSS代码来赋予容器最小宽度。但是,我认为引导程序可能有更好的方法来处理此问题 问题答案: 在屏幕宽度<360px处,列开始换行,因

  • 问题内容: 我用来填充包含HTML无序列表()的模板。 这些中的大多数没有那么长,但是有一些长度却很可笑,实际上可以容纳2-3列。 有没有HTML,ColdFusion或JavaScript(我接受jQuery解决方案)的方法可以轻松地做到这一点?为了节省一些滚动,不值得使用过于复杂的重量级解决方案。 问题答案: 所以我从A List Apart CSS Swag:Multi-ColumnList

  • 我如何创建一个组合框,它有不同的显示值和实际值的项目?

  • 问题内容: 当使用时,如何指定最大列数,当内容对于空间而言变得太宽(或小于最小大小)时,列数自动中断?有没有媒体查询的方法吗? 例如,我有以下内容,当内容没有足够的空间时,它们不会进入单列模式。 问题答案: HTML或CSS都没有关于何时容器包装后代的概念。 本质上,浏览器在初始级联期间渲染文档。子包装时,它不会重排文档。 因此,要更改列数,您将需要在行的某处设置宽度限制或使用媒体查询。 如果您可

  • 希望我能把问题弄得尽可能清楚。我正在使用JavaFX库为GUI开发一个小型java应用程序。我正在做一个POP连接,并将消息存储为ObservableList。为此,我使用javax.mail。我将这个observablelist传递给一个tableview,并通过以下方式将所需的值传递给TableColumns: Subject和sentDate是完美的读入。但不幸的是,“from”将对象引用添