обновить модель jtable после фильтрации

Я хочу применить фильтр к JTable.

            String text = textField.getText();
            rowSorter = new TableRowSorter<>(tableModel);
            this.getjTable1().setRowSorter(rowSorter);
            this.getjTable1().removeAll();
            if (text.trim().length() == 0) {
                rowSorter.setRowFilter(null);
            } else {
                //String regex = String.format("^%s$", text);
                if(jCheckBoxExtract.isSelected()){
                    text="^"+text+"$";
                }
                else{
                    if(!text.contains(".")||text.contains("$"))text="^"+text;
                }
                RowFilter rowFilter = RowFilter.regexFilter(text, 1);
                rowSorter.setRowFilter(rowFilter);
            }
            this.getjTable1().repaint();   

этот код работает, но теперь, если я хочу получить значение в jtable, модель не обновляется. Использование модели в jtable всегда является старой моделью, но не новой моделью после фильтра.


person Rojo    schedule 03.07.2017    source источник
comment
Чтобы быстрее получить помощь, опубликуйте минимально воспроизводимый пример или Короткий, автономный, правильный пример. Жесткий код некоторых данных для таблицы.   -  person Andrew Thompson    schedule 03.07.2017


Ответы (1)


чтобы получить правильное значение, делайте это всякий раз, когда вам нужна строка из таблицы:

model.getSelectedEntry(table.convertRowIndexToModel(table.getSelectedRow()));
person XtremeBaumer    schedule 03.07.2017