JavaFX-获取 cellFactory() 的整个行项目?

标签 java javafx tableview

假设我有一个给定的 TableView<Person> 。我有一列 LocalDate键入一组cellFactory()

birthdayColumn.setCellFactory(column -> {
    return new TableCell<Person, LocalDate>() {
        @Override
        protected void updateItem(LocalDate item, boolean empty) {
            super.updateItem(item, empty);

            //Person person = ... I want to get entire Person, not just LocalDate item

            if (item == null || empty) {
                setText(null);
                setStyle("");
            } else {
                // Format date.
                setText(myDateFormatter.format(item));

                // Style all dates in March with a different color.
                if (item.getMonth() == Month.MARCH) {
                    setTextFill(Color.CHOCOLATE);
                    setStyle("-fx-background-color: yellow");
                } else {
                    setTextFill(Color.BLACK);
                    setStyle("");
                }
            }
        }
    };
});

有什么方法可以访问整个 Person对于updateItem()内的记录方法?我想使用 Person 的其他属性有条件地格式化单元格...

最佳答案

TableCell 可以访问 TableView 及其在项目列表中的索引,因此您可以执行以下操作:

Person person = getTableView().getItems().get(getIndex());

关于JavaFX-获取 cellFactory() 的整个行项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35661981/

相关文章:

ios - 如何在 ios 中向我的 ImageView 添加角标(Badge)?

使用文本类并选择行时 JavaFX TableColumn 字体颜色错误

ios - 你如何在 tableview 中对部分进行分组?

java - 访问 fragment 内的 TextView 会给出 NullPointerException

java - 使用 Java 下载的 PDF 已损坏?

java - Guava Multimap 到 HashMap

android - 如何在javafx应用程序中连接godaddy mysql

java - 无法在另一个包中加载 FXML (JavaFX)

JavaFX TableView 点击排序器不工作?

java - 我需要设置一个变量,但我也需要它是最终的。