我的目标是显示一个缩写列表,每行包含两个条目:缩写和相应的长版本。为了获得漂亮的布局,我使用了 GridPane
,因为所有条目都是垂直对齐的 - 它很容易阅读。
但我也想滚动到单击的缩写并将焦点设置在它上面,就像在它的 ListView
版本中一样。
例如,旧 HTML 中的 # on page 链接。我是否想念另一个 javafx
布局元素来实现此目的?
最佳答案
我不认为提供的控件适用于您描述的特定场景。但是,我认为这些选项之一可能适合您...
- 使用 TableView 控件并为要显示的信息添加两列(一列用于缩写,另一列用于全称)。 TableViews 还具有您正在寻找的 scrollTo 和 setFocus 功能。 Here是帮助您开始使用 Tableview 控件的好资源。如果您的意图是这样,您还可以使用 CSS 设置 Tableview 的样式,使其看起来不像表格,而更像列表。
- 第二个选项是在您的 ListView 上设置一个自定义单元格工厂,该工厂使用 HBoxes、VBoxes、Labels 等构建自定义单元格,以实现您想要的外观。您还希望使用单元格工厂为每个 ListView 单元格填充一个包含缩写文本和长版文本的对象。几个很好的资源,1 , 2
虽然我认为这两个选项都可以正常工作,但我会建议选项 1,因为在选项 2 中,您无论如何都在构建一个表类型结构。我希望这对您有所帮助!
关于java - 结合 javafx 2 ListView 和 GridPane 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16236927/