gpt4 book ai didi

Java fx 绑定(bind)样式

转载 作者:行者123 更新时间:2023-11-30 04:16:29 25 4
gpt4 key购买 nike

这是我在这里发表的第一篇文章,所以如果我做错了什么或者有什么不清楚的地方,我提前表示歉意。

在 javafx 中,我有一个大约有 5 列的树 TableView ,第一列仅显示对象名称的字符串。在设置单元格值工厂方法中,我只需获取对象的名称属性,如下所示。

column.setCellValueFactory(new Callback<CellDataFeatures<Foo, String>, ObservableValue<String>>(){
@Override
public ObservableValue<String> call(CellDataFeatures<Foo, String> row) {
if (row.getValue().getValue() instanceof Foo){
final Foo bar = (Foo)row.getValue().getValue();
return bar.getNameProperty();
}
return null;
}
});

我希望能够通过将字符串绑定(bind)到样式属性来更改该字符串的颜色,如表中所示。我尝试将字符串更改为 Text 对象,但无法绑定(bind)样式属性。有没有一种方法可以将 style 属性绑定(bind)到 Foo 对象中的某些内容,就像

String style = "-fx-text-fill: red"

这样每当我想以编程方式更改样式时,它也会在表格中更新吗?

再次对任何不清楚的地方表示歉意!

最佳答案

要影响单元格视觉效果(例如样式),您需要定义一个 cellFactory(除了 cellValueFactory 之外)。

完成“将样式属性绑定(bind)到 Foo 对象中的某些内容”的一种方法是:

  1. 向 Foo 添加定义为 StringProperty 的 styleProperty。
  2. 在单元工厂提供的单元中,当附加到单元的 foo 对象发生变化时,取消绑定(bind)单元的 styleProperty,然后将单元的 styleProperty 绑定(bind)到 Foo 项的 styleProperty。

那么当你修改 Foo 对象的 styleProperty 时,TreeTable 中 foo 显示的样式会同时自动改变。

关于Java fx 绑定(bind)样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18216190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com