结合 javafx 2 ListView 和 GridPane 功能

Posted

技术标签:

【中文标题】结合 javafx 2 ListView 和 GridPane 功能【英文标题】:Combine javafx 2 ListView and GridPane features 【发布时间】:2013-04-20 15:45:36 【问题描述】:

我的目标是显示一个缩写列表,每行有两个条目:缩写和相应的长版本。对于一个漂亮的布局,我使用了GridPane,因为所有条目都是垂直对齐的——读起来很好。

但我还想滚动到单击的缩写并将焦点设置在它上,就像在它的 ListView 版本中一样。

例如,旧 html 中的 # on page 链接。我想念另一个 javafx 布局元素来实现这一点吗?

【问题讨论】:

【参考方案1】:

我认为没有提供的控件适用于您所描述的特定场景。但是,我认为这些选项之一可能对您有用...

    使用 TableView 控件并为要显示的信息添加两列(一列用于缩写,另一列用于长版本)。 TableViews 还具有您正在寻找的 scrollTo 和 setFocus 功能。 Here 是一个很好的资源,可以帮助您开始使用 Tableview 控件。如果您的意图是这样,您还可以使用 CSS 设置 Tableview 的样式,使其看起来不像表格而更像列表。 第二个选项是在您的 ListView 上设置一个自定义单元格工厂,该工厂使用 HBoxes、VBoxes、标签等构建自定义单元格,以实现您想要的外观。您还希望使用单元工厂来使用包含缩写文本和长版本文本的对象填充每个 ListView 单元。几个很好的资源,1,2

虽然我认为这两个选项都可以正常工作,但我建议使用选项 1,因为在选项 2 中,无论如何您都是在构建一个表类型结构。我希望这会有所帮助!

【讨论】:

以上是关于结合 javafx 2 ListView 和 GridPane 功能的主要内容,如果未能解决你的问题,请参考以下文章

JavaFX:一次有2个独立的窗口

如何修复 javafx 中的渲染错误(ComboBox、ListView)

如何使用自定义对象在 JavaFX 中填充 ListView?

在 JavaFX 中更新 ListView 时出现 IndexOutOfBoundsException

JavaFX 8,带有复选框的 ListView

JavaFX排序ListView