#java #javafx #tableview
#java #javafx #просмотр таблиц
Вопрос:
У меня есть представление таблицы javafx с несколькими ячейками. Сортировка включена. Теперь у меня есть ячейка с 2 строками в ней, но сортировка фильтрует обе строки в этой ячейке в asc / desc.
Я хотел бы сделать так, чтобы фильтр применялся только к первой строке в ячейке, поэтому он игнорирует строку 2.
Это связано с тем, что моя сортировка искажается, потому что в ячейке есть две разные переменные, вторая из которых не нужна для сортировки, но первая нужна. Но теперь сортировка неверна, потому что она также принимает вторую строку.
Возможно ли это? Или я должен сделать это двумя отдельными ячейками?
Ответ №1:
Просто установите компаратор в столбце. Предполагая, что тип элемента столбца является строкой (вы можете соответствующим образом изменить его, если это не так):
myColumn.setComparator(Comparator.comparing(s -> {
int index = s.indexOf(" ");
if (index == -1) return s ;
return s.substring(0, index);
}));
Комментарии:
1. Спасибо, но s, похоже, ничего не содержит: O У него нет indexOf и подстроки D:
2. @Raflesia Извините, что вы имеете в виду? Я сказал, предполагая, что это строка, так
s
и естьString
. КонечноString
, естьindexOf
иsubstring
методы.