Есть 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)
, а уже потом писать свою логику.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Написать функцию, которая принимает три параметра n1, n2 и n3 где число n1 – стартовое число массива, n2 - количество элементов массива, n3 – количество...
На данный вопрос уже ответили: