2016-10-05 6 views
-1

У меня есть табличный вид javafx с несколькими ячейками. Сортировка включена. Теперь у меня есть ячейка с двумя строками в ней, но сортировка фильтрует на обеих строках в этой ячейке в asc/desc.javafx tableview sort filter issue

Я хотел бы сделать это так, что фильтр применяется только к первой строке в ячейке, поэтому он игнорирует 2. снабжать струной, тетивой и т.п.

Это потому, что моя сортировка получает, потому что обменивались сообщениями есть две разные переменные в ячейка, из которых вторая не нужна для сортировки, но первая из них. Но теперь сортировка неверна, потому что она берет вторую строку.

Возможно ли это? Или мне нужно сделать две отдельные клетки?

ответ

0

Просто установите компаратор на столбе. Если предположить, что тип элемента столбца является строка (вы можете изменить его соответствующим образом, если это не так):

myColumn.setComparator(Comparator.comparing(s -> { 
    int index = s.indexOf(" "); 
    if (index == -1) return s ; 
    return s.substring(0, index); 
})); 
+0

Спасибо, но ей кажется, не содержат ничего: O Он не имеет IndexOf ни подстроку D: – Raflesia

+0

@ Raflesia Извините, что вы имеете в виду? Я сказал, что это строка, поэтому '' '' 'String'. Конечно, 'String' имеет методы' indexOf' и 'substring'. –