javafx выделение колонки и строки

 
0
 
Java
ava
Anime | 21.11.2016, 17:15
Хочу сделать выделение строки и колонки вместе (т.е. выделяется строки цветом и колонка другим цветом)

Поставил выделение колонок

tableView.getSelectionModel().setCellSelectionEnabled(true);


Создал класс колонки

package ua.gov.uz.hetman;

import javafx.scene.control.TableCell;
import javafx.scene.control.TableRow;
import javafx.scene.control.Tooltip;
import ua.gov.uz.hetman.system.Forwarder;

public class DefaultTableCell extends TableCell<Forwarder, String> {

    public DefaultTableCell() {
        selectedProperty().addListener(((observable, oldValue, newValue) -> {
            TableRow tableRow = getTableRow();

            if(newValue) {
                tableRow.setStyle("-fx-background-color: red;");
            } else {
                tableRow.setStyle("");
            }

        }));
    }

    @Override
    protected void updateItem(String item, boolean empty) {
        super.updateItem(item, empty);

        setText(item);
        setTooltip(new Tooltip(item));
    }

}



Он работает в одну сторону -), т. е. если я выделаю колонку потом следующую то работает замечательно, но если выделить колонку а потом выделить предыдущую то он перестает закрашивать. Как правильно реализовать это, кто знает?
Ответы (2)
ava
mailworkd | 22.11.2016, 10:06 #
eparhia.ru/useful/?id=151324

Как выбрать баню
Баня является важной частью русских традиций.Сегодня в России есть огромное количетсво бань как общественного плана, так и частного. Походы в баню носят для мужчин особый характер. Там они встречаются со своими друзьями, обсуждают насущные проблемы и просто расслабляются. Такая неформальная атмосфера только способствуют полной релаксации.
Учитывайте, что многие учреждения на посещение бассейнов устанавливают цены поменьше.
Частные бани сегодня по многим параметрам выигрывают у общественных. К семейному отдыху лучше подходят частные банные комплексы. У всех срубов есть свой забор с целью защиты. Рядом с банями вполне можно жарить шашлыки или заниматься другими своими важными делами.

ava
Anime | 30.11.2016, 16:34 #
Сделал так


private TableRow<Forwarder> currentRow;

@FXML
private void initialize() throws Exception {
        tableView.getSelectionModel().setCellSelectionEnabled(true);
        tableView.setRowFactory(tableView -> {
            final TableRow<Forwarder> row = new TableRow<>();

            row.setOnMousePressed(event -> {
                if(currentRow != null)
                    currentRow.getStyleClass().remove("row-highlight");

                row.getStyleClass().add("row-highlight");

                currentRow = row;
            });

            return row;
        });
}
Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
advanced
Отправить