Я сделал нечто подобное в своей таблице, в моей TableModel у меня есть цвет поля, который поддерживается, но не отображается.Цвета устанавливаются следующим образом:
myTable.setRowFactory(tv -> new TableRow<>() {
@Override
public void updateItem(MyTableRow row, boolean empty) {
super.updateItem(row, empty);
if(row==null) {
setStyle("");
} else if (row.getColor().equals("Grey")) {
setStyle(Theme.REPORT_THEME_GREY);
} else if (row.getColor().equals("Yellow")) {
setStyle(Theme.REPORT_THEME_YELLOW);
} else if (row.getColor().equals("Orange")) {
setStyle(Theme.REPORT_THEME_ORANGE);
} else if (row.getColor().equals("Blue")) {
setStyle(Theme.REPORT_THEME_BLUE);
} else if (row.getColor().equals("Mauve")) {
setStyle(Theme.REPORT_THEME_PURPLE);
} else if (row.getColor().equals("Peach")) {
setStyle(Theme.REPORT_THEME_PEACH);
} else if (row.getColor().equals("White")) {
setStyle(Theme.REPORT_THEME_WHITE);
} else if (row.getColor().equals("Red")) {
setStyle(Theme.REPORT_THEME_RED);
} else if (row.getColor().equals("Green")) {
setStyle(Theme.REPORT_THEME_GREEN);
} else {
setStyle("");
}
}
});
Цвета и стили, конечно, будут изменены на набор.
Моя версия не привязана к кнопке, но это должен быть простой вызовметод setColor (Color) в вашей модели для выбранной строки и перерисовки таблицы.