Цвет таблицы ячейки в зависимости от данных ячейки - PullRequest
1 голос
/ 12 июня 2019

Я нашел хороший пример в интернете, как это сделать, на самом деле это не работает. Ниже приведен код с моими комментариями, помогите разобраться, что и почему не работает.

    @FXML
    private void initialize() {
timeContractColumn.setCellFactory(column -> {
            return new TableCell<MainData, LocalDate>() { // MainData - model,
// where all variables and collections for storing data are stored
// timeContractColumn - stores the entered date, therefore, LocalDate
                @Override
                protected void updateItem(LocalDate item, boolean empty) {
                    super.updateItem(item, empty);

                    if (item == null || empty) { //If the cell is empty
                        setText(null);
                        setStyle("");
                    } else { //If the cell is not empty

                        setText(item.toString()); //We place the data in the cell
                        System.out.println(item);

                        // We get here all the information about this line.
                        MainData auxPerson = getTableView().getItems().get(getIndex());
                        System.out.println(auxPerson.toString());

                        // Change the style if ...
                        if (auxPerson.getTimeContract().equals("2019-04-09")) {
                            setTextFill(Color.RED);
                            setStyle("-fx-background-color: yellow");
                        } else {
                            //Here we see whether the row of this cell is highlighted or not
                            if(getTableView().getSelectionModel().getSelectedItems().contains(auxPerson))
                                setTextFill(Color.WHITE);
                            else
                                setTextFill(Color.BLACK);
                        }
                    }
                }
            };
        });
}

1 Ответ

0 голосов
/ 12 июня 2019

Фабиан был прав, я не учел, что сравнивал разные объекты, спасибо за советы.

if (auxPerson.getTimeContract().toString().equals("2019-04-11"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...