Сложная фильтрация в JTable

261
14 сентября 2017, 15:34

Написал такую фильтрацию(точное совпадение числа):

        RowFilter<TableModel,  java.lang.Object> rowFilter = null;
        ArrayList<RowFilter<TableModel, java.lang.Object>> filters = new ArrayList<>();
        RowFilter<TableModel, java.lang.Object> filter1 = null;
        filter1 = RowFilter.regexFilter(
                p_Dy.getText().isEmpty() ? "" : "^" + p_Dy.getText()+"$"
                        , 3);
        filters.add(filter1);
        RowFilter<TableModel, java.lang.Object> filter2 = null;
        filter2 = RowFilter.regexFilter(
                p_dy.getText().isEmpty() ? "" : "^" + p_dy.getText()+"$"
                , 4);
        filters.add(filter2);
        rowFilter = RowFilter.andFilter(filters);
        tblPanel.setFilter(rowFilter); 

Как оказалось, нужно было сделать фильтр что бы оставлял не больше 2 ближайших нижних значения в таблице и 2 ближайших верхних от того что было введено в поля p_Dy и p_dy.
В столбцах хранятся стринги.
Может кто ни будь сможет помочь, как это вообще должно выглядеть?

Answer 1

Ничего нормального в голову не пришло(
Придется пихать такого монстра:

/**Возвращает регулярное выражение*/
private String getRegExp(String text){
    String reg = "";
    if(!text.equals("")){
        int avg = Integer.parseInt(text);
        int begin = avg - 50;
        if(begin < 0) begin = 0;
        for(int i = begin; i <= (avg + 50); i++)
            reg += i + "|";
        reg = reg.substring(0, reg.length()-1);
        reg = "^(" + reg + ")$";
    }
    return reg;
}
READ ALSO
Механизм загрузки изображения с Android в БД - api

Механизм загрузки изображения с Android в БД - api

Подскажите, возможно глупый вопрос но все же ответ на него найти я не могуМне нужно реализовать загрузку изображений на сервер, api свой на Java, взаимодействие...

217
Есть ли в Java класс, реализующий метод с рассчетом RipeMd-128

Есть ли в Java класс, реализующий метод с рассчетом RipeMd-128

Нужно рассчитать для байтового массива сумму по алгоритму RipeMd-128Никак не найду, как

163