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

Javafx:从TableCell获取属性

锺离声
2023-03-14

我想从我的TableCell中的模型中获取一个属性,因此我可以根据该属性对单元格进行修改,让我们看一下以下示例:

我有这样一个模型:

public class Model {

    private CustomProperty<Integer> appleCount;
    private CustomProperty<Integer> peachCount;

    public Model(Integer appleCount, Integer peachCount) {
        this.appleCount = new CustomIntegerProperty(appleCount);
        this.peachCount = new CustomIntegerProperty(peachCount);
    }

    public CustomProperty<Integer> appleCountProperty() {
        return appleCount;
    }

    public CustomProperty<Integer> peachCountProperty() {
        return peachCount;
    }
}

这个模型只是我所拥有的模型的一个模拟,我有几个模型有两个或更多的CustomProperty

然后,我有一些表具有这个模型,或者类似于TableView模型的类。我有一个覆盖了updateItem的自定义表格单元格,我想根据CustomProperty的属性设置单元格的文本,例如initialValue、oldValue等。例如,如果initialValue为0,则将文本设置为空,而不是默认情况下包含单元格的0。我有一个部分解决方案:创建一个HasCustomProperty接口,然后模型将实现它,但还有一些问题:

  • 我需要向接口添加两个CustomProperties或它们的列表
  • 我需要在牢房里问:你是苹果伯爵?还是桃子细胞?

可以肯定的是,在一个单元格中只有一个属性,苹果或桃子,因此从理论上讲,如果我知道这两个属性都是CustomIntegerProperty,那么我就不应该关心单元格中的属性,因为我知道它们都有初始值或旧值,所以我可以根据它设置单元格的文本。

我只能获取项目,这是一种整数,所以我没有它的属性,或者有什么方法可以获取属性本身?

解决方案可以是在每个列的cellFactory中重写updateItem,例如,我知道这是appleColumn,所以从appleCountProperty获取信息,等等,但是如果我必须在5-6个位置执行,这会导致大量重复代码。所以我想我制作了一个定制的TableCell,在那里我管理文本,然后我只需为每个列设置该单元格,用于cellFactory()

你知道我如何在没有重复代码的情况下做到简单吗?


共有1个答案

梁昊天
2023-03-14

根据我们的讨论-我认为您面临的问题是确定用户集0和IntgerProperty的初始化0之间的区别。

与其使用使用int且不能为空的IntgerProperty,不如在模型中使用以下内容:

private ObjectProperty<Integer> appleCountProperty = new SimpleObjectProperty<>();

然后在表中绑定到它:

@FXML
TableColumn<Model, Integer> appleCountColumn;

//在初始化中

appleCountColumn.setCellValueFactory(data -> data.getValue().appleCountProperty ());

这应该会给你你需要的。

 类似资料:
  • 我有一个包含如下值的对象 这些都在变量autossuggest中。现在我只想获得值 谢谢你的小费

  • 问题内容: 我如何从javafx image / imageview类获取byte []?我想将图像作为Blob存储到数据库中。这是我使用的方法 有没有一种方法可以将当前对象(图像视图,图像)转换为byte [] ?,还是应该开始考虑对图像使用其他类/或者指向带有引用的位置并使用路径/ URL? 问题答案: 试试这个: 应该根据徽标类别工作 您需要在写入和读取时指定一种格式,据我所知,不支持bmp

  • 我试图从Woocommerce的Wordpress网站上获取产品数据。我使用下面的代码获取特定类别产品的名称和缩略图。 这在获取“工具”类别中产品的名称和图像方面效果很好,但我想获取每个产品的权重。 产品重量在WordPress仪表板中设置为产品属性。 如何获取产品的这些数据?我似乎找不到访问这些的功能。

  • 我有一个java代码可以将这些值追加到我的属性文件中 我的属性文件将有如下条目。 key1=主机、端口、orcl、用户名、密码 key2=主机、端口、orcl、用户名、密码 key3=主机、端口、orcl、用户名、密码等… 这些key1、key2和key3是连接名。 在进入属性文件之前,首先我必须检查该文件是否提供了连接名条目。我的意思是,如果用户再次使用key1或key2或key3连接名输入值,

  • 我正在尝试获取 Cassandra 列系列中的键值对的数量。以下是我使用的代码。 但是当我运行这段代码时,我收到了以下异常。 根据datastax文档(http://www . datastax . com/drivers/Java/2.0/com/datastax/driver/core/row . html),getVarint应该返回一个BigInteger。那么为什么我会得到一个异常呢?我

  • 我有一个基本的SpringBoot应用程序。使用Spring初始值设定项、嵌入式Tomcat、Thymeleaf模板引擎和作为可执行JAR文件的包。 在我的财产档案中: 在我的控制器中: 在模板中: 但这是我在模板中看到的,而不是电子邮件(已拍摄)