проблема с фильтром сортировки javafx tableview

#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 методы.