Есть SplitPane, в которую я вложил TableView. И появляются некоторые вопросы.
1. TableView должна подстраиваться под разные типы объектов (в настоящий момент 3, планирую больше). После переключения на одну из вкладок TreeView генерируется стирается предыдущая и генерируется новая таблица на одном и том же TableView. Это хорошее решение или возможно его как-то улучшить/изменить?
2. Окрашивание строк. Я хочу залить строки цветом лишь той таблицы, которая соответствует только одному из моих объектов. Но "окрашиватель" идёт на каждую таблицу и постоянно генерирует исключение несовместимости объектов. Может, я допускаю ошибку при реализации окрашивателя?
tableView.setRowFactory(rows -> new TableRow<MyClass>() {
@Override
protected void updateItem(MyClass item, boolean empty) {
TreeItem<String> nValue = (TreeItem<String>) treeView.getSelectionModel().getSelectedItem();
if (nValue.getValue().equals("String")) {
if (item != null) {
if (!item.isActive()) {
setStyle("-fx-background-color: darkorange; -fx-text-background-color: black;");
} else {
setStyle("-fx-background-color: white; -fx-text-background-color: black;");
}
}
}
super.updateItem(item, empty);
}
});
3. Всё тот же окрашиватель. По идее, он должен менять цвет строки при нажатии на неё(потому что item.isActive меняет своё значение при нажатии), но такого не происходит. и я немного не понимаю, почему так происходит. Что тут не так?
Уточните этот момент, не совсем понятно.
UPDATE. Судя по комментарию, что у вас разные классы MyClass1, MyClass2 и тд и тп., необходимо
Приведите код, потому что тоже не совсем понятно
Вся суть в том, что в методе updateItem(MyClass item, boolean empty) вам сначала необходимо вызвать super.updateItem(item, empty), а уже потом писать свою логику.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости