Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / JavaFX TableView подсветка строк / 1 сообщений из 1, страница 1 из 1
03.06.2016, 11:01
    #39249888
Mandarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaFX TableView подсветка строк
Всем привет! подскажите пожалуйста как подсветить строки разным цветом в зависимости от значений в строке?

у меня получилось подсветить всю строку как мне нужно используя вот этот код

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
table.setRowFactory((TableView<MyClass> paramP) -> new TableRow<MyClass>() {
            @Override
            protected void updateItem(MyClassrow, boolean paramBoolean) {
                if (row != null) {
                    switch (row.getColor()) {
                        case 1:
                            setStyle("-fx-background-color: LIGHTCORAL; -fx-text-background-color: black;");
                            break;
                        case 2:
                            setStyle("-fx-background-color: skyblue; -fx-text-background-color: black;");
                            break;
                        default:
                            setStyle(null);
                    }

                } else {
                    setStyle(null);
                }
                super.updateItem(row, paramBoolean);
            }
        });



теперь мне нужно подсветить одну ячейку, текущую, т.е. ту на которой установлен курсор.
пробую делать так

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
table.setCellFactory((TableColumn<MyClass, Integer> param) -> new TableCell<MyClass, Integer>() {
            @Override
            protected void updateItem(Integer item, boolean empty) {
                if (item != null) {
                    setText(item.toString());
                    if (table.getSelectionModel().getFocusedIndex() == getTableRow().getIndex()) {
                        setStyle("-fx-background-color: red;");
                    } else {
                        setStyle(null);
                    }
                }
                super.updateItem(item, empty);
            }
        });



подсветка делается, НО только при открытии таблицы или когда нужная мне ячейка выходит за рамки видимости и возвращается обратно (например если список большой и скролить вверх/вниз чтобы ячейка вышла за рамки видимости)

вопрос: как принудительно перерисовать ячейку при смене выбранной строки?

может есть какие то методы TableView.Repaint или TableView.Update, или листнер какой-нибудь?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / JavaFX TableView подсветка строк / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]