问题标签 [treetableview]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javafx - JavaFX PropertyGrid/编辑器
我正在尝试编写一个通常称为“属性编辑器”或“属性网格”的 JavaFx 组件。属性是名称-值对。
我想属性表是为此而制作的,但我想使用 TreeTableView。主要是因为我有嵌套的属性,最终有几列。
右边的组件正是我试图实现的。
我在使用 TreeTableView 时遇到的问题是,必须在 CellFactory 中进行单元格自定义,这会导致项目类型的切换。这种解决方案使事情变得非常不灵活。
例如,如果字符串值必须通过给定属性的 TextField 和另一个属性的 ComboBox 更新,会发生什么情况?
任何建议都非常受欢迎!
相关问题:javafx-8-custom-listview-cells-its-evil
更新1
我试图实施@fabian 的第一个建议。
我有我的豆子:
EditableItem 的默认实现,通过在 TextField 中编辑字符串:
我对 TableView 的实现:
我的问题出在需要返回 ObservableValue 的 cellValueFactory 上。鉴于我希望此列可编辑,我应该怎么做?
我猜 EditableItem 必须扩展属性?但是,我的 DefaultEditableItem 可以扩展 SimpleStringProperty 吗?
tree - 树表 OData 绑定,SAPUI5
我正在尝试在我的 FIORI 应用程序中从 EntitySet(比如 E1)创建一个树表。
我有我的控制器和扩展视图,并且数据在两者之间正确绑定。
我指的是树表代码的官方 SAP Demo Explored Kit。
在那里,他们将 5 个参数作为 JSON 的输入。根节点的样本数据:
现在,我的 OData EntitySet 中没有“DrillState”字段。这个字段的目的是什么,没有它我的树会正常显示吗?如果需要,我可以对逻辑进行硬编码。
目前我没有通过“DrillState”。我的输出看起来很奇怪。它只是一个没有树形结构的普通表,并且都处于同一级别(但第一列确实附加了“展开或折叠”按钮,但它没有任何作用)。
以下是我的 XML 代码:
我哪里错了?或者我是否必须以不同的方式映射它,因为我从实体集中获取数据,并且在教程中它们直接作为 JSON 对象传递
java - 使用通用对象类型的 TableColumn 的 CellValueFactory?
错误:类型不匹配:无法从 转换SimpleStringProperty
为ObservableValue<Object>
。
我正在尝试创建一个包含管理各种数据类型的列的 TreeTableView。这意味着每一行可以使用三种左右的数据类型之一(String
、int
、StringProperty
或ObjectProperty< LocalDate >
.
鉴于我的数据类型是“对象”,那么setCellValueFactory( cellDataFeatures -> { return ...; })
需要一个ObservableValue< Object >
. 我在尝试从 CellValueFactory 回调的属性中获取所需的 ObservableValue 时不知所措。:(
这篇文章建议使用 aReadOnlyStringWrapper
但我想保持可编辑的值(在大多数情况下)。我还找到了对#asObject()
StringProperty 中不可用的方法的建议。
注意1:尚未解决setCellFactory(...)
。
注2:如前所述,我意识到这个例子是不切实际的。作为所需功能的示例,它与我的项目完全分开。
错误:
Java版本:
javafx - Javafx:UpdateItem 后 TreeTableView 刷新
我有一个TreeTableView
并且我有一个自定义 TreeTableCell ,我在其中重写了该updateItem
方法,以便根据某些条件呈现我的单元格(设置为禁用或启用)。问题是,如果我进行一些滚动,表格不会刷新,并且正如您在附加图像中看到的那样,即使某些单元格不满足条件,它们也会被禁用。大量滚动后,所有单元格都被禁用(灰显)。我尝试了两件事来解决问题:添加一些事件侦听器以“手动”刷新表,例如:
渲染问题消失了,但是如果我进行更重的滚动,它会变得如此滞后,就像应用程序以 10-15 fps 运行一样,因为刷新事件触发得太频繁了。我尝试过的另一件事是java.util.Timer
在滚动时创建一个 timer() 来触发刷新,例如每 50 毫秒触发一次刷新。然后滞后消失,但渲染单元格有延迟,因此您可以观察单元格颜色从灰色到白色的变化。如果我选择较小的时间间隔,它会变得滞后,并且我无法在滞后和延迟之间找到平衡,而且我还认为我的两个解决方案都只是解决方法,而不是问题的真正解决方案。
你有其他想法来解决这个问题吗?
附图:TableCells
javafx - JavaFx 动态列值
我有一个TreeTableView<MyCustomRow>
并且我想动态添加列。在MyCustomRow
我有一个Map<Integer, SimpleBooleanProperty>
与行中的值。我以这种方式添加新列:
然后table.getColumns().add(newColumn())
。
问题是当我连续检查 aCheckBox
时,该行中的所有 CheckBox 都会被选中。这是我的行的代码:
所以我根据 设置单元格的值colNr
,我也尝试调试,似乎values
地图中的值不同,所以我不知道为什么我只检查一个复选框时会检查所有复选框。
javafx - JavaFX TreeTableView 更大的显示/隐藏列按钮
有没有办法使TreeTableView中的显示/隐藏列按钮更大?
javafx - 将两个数据库表值获取到一个 JavaFX TreeTable
我有两个类 Customer 和 Product.i 将此类值存储在数据库中作为两个表,一个用于客户,另一个用于产品。我使用内部连接来检索这些数据。我想在 JavaFX TreeTable 中显示这些数据。有很多教程,但它们只适用于一个类。到目前为止,这是我的代码,但它不起作用。我不是 javaFX pro。
java - 如何在 JavaFX 的 TreeTableView 中设置默认排序规则?
我在 SO 上进行了搜索,但只找到了有关排序的帖子TreeView
,例如
JavaFX: TableView: Arrow for a columned by default和Javafx: Re-sorting a column in a TableView。
两者似乎都不适用于我的TreeTableView
.
此外,Oracle 关于树表视图的博文(参见示例 15-4:排序模式设置)也没有真正的帮助。
我认为它应该是一些组合
和
和
和
和
但我无法让它工作。
我想要达到的目标:
- 定义列并将它们添加到表中(工作正常)
- 设置默认排序(例如,按“
valueColumn
”降序对数据进行排序)(如何?) - 设置根(有效,但目前没有排序)
java - 更改 JavaFX TreeTableView 的选择颜色
我在 FX、CSS 和 TreeTableView 方面遇到了一些麻烦。我有包含蓝色超链接的单元格。现在,如果选择了单元格,背景将变为蓝色,因此链接实际上是不可见的。我现在想使用样式表更改选定单元格的背景颜色。
对于 TreeView,以下工作正常:
所以类似地我试过:
但这没有任何效果。令人惊讶的是,尽管我能够通过以下方式更改一般背景颜色:
单元格现在都是黄色的,但这似乎覆盖了默认选择模式,因为现在甚至选定的行都有黄色背景。
对我来说,状态选择器似乎不适用于 TreeTableView 单元格,但我不知道如何以另一种方式实现这一目标。
我还使用 JavaFX 文档中的示例 15-2进行了尝试,得到了同样令人不满意的结果。
我无法在网上找到任何解决方案,因为所有问题似乎都与 TreeViews 或 TableViews 相关,而不是组合的 TreeTableView。因此,任何指向正确文档的提示或链接都会非常有帮助!
提前致谢!
PS:我知道可以通过更改超链接的颜色来解决问题,但是必须有一种方法可以更改单元格的颜色,对吗?