Есть ли способ стилизовать независимый столбец TableView?

Я могу использовать CSS для стилизации ячеек, но что, если я хочу другой стиль (например, использование другого цвета текста) только для одного столбца.

Может быть, я что-то упустил.

Ответы на вопрос(1)

Решение Вопроса

Вы должны использоватьTableColumn # setCellFactory () настроить отображение элементов ячейки.
Например, датамодель с такимПерсональный класс:

// init code vs..
TableColumn firstNameCol = new TableColumn("First Name");
firstNameCol.setMinWidth(100);
firstNameCol.setCellValueFactory(new PropertyValueFactory<Person, String>("firstName"));
firstNameCol.setCellFactory(getCustomCellFactory("green"));

TableColumn lastNameCol = new TableColumn("Last Name");
lastNameCol.setMinWidth(100);
lastNameCol.setCellValueFactory(new PropertyValueFactory<Person, String>("lastName"));
lastNameCol.setCellFactory(getCustomCellFactory("red"));

table.setItems(data);
table.getColumns().addAll(firstNameCol, lastNameCol);

// scene create code vs..

и общееgetCustomCellFactory() метод:

private Callback<TableColumn<Person, String>, TableCell<Person, String>> getCustomCellFactory(final String color) {
        return new Callback<TableColumn<Person, String>, TableCell<Person, String>>() {

            @Override
            public TableCell<Person, String> call(TableColumn<Person, String> param) {
                TableCell<Person, String> cell = new TableCell<Person, String>() {

                    @Override
                    public void updateItem(final String item, boolean empty) {
                        if (item != null) {
                            setText(item);
                            setStyle("-fx-text-fill: " + color + ";");
                        }
                    }
                };
                return cell;
            }
        };
    }
 betaman22 мая 2012 г., 12:09
Спасибо, Улук, сработало нормально :)
 betaman22 мая 2012 г., 12:11
Тем не менее, было бы неплохо использовать простое решение на основе CSS, просто добавив поле идентификатора в объект TableColumn, который можно использовать для его стилизации.

Ваш ответ на вопрос