Как я могу сделать TableRowShorter между двумя датами

Aug 19 2020
combobox.addItemListener(new ItemListener() {
            public void itemStateChanged(ItemEvent arg0) {
                if(arg0.getStateChange()==ItemEvent.SELECTED) {
                    if(!combobox.getSelectedItem().toString().equals(items[0])) { //items[] for the items of the combobox.
                        DefaultTableModel table1 = (DefaultTableModel)table.getModel();
                        String search =combobox.getSelectedItem().toString();
                        TableRowSorter<DefaultTableModel> tr = new TableRowSorter<DefaultTableModel>(table1);
                        table.setRowSorter(tr);
                        tr.setRowFilter(RowFilter.regexFilter(search));
                    }
                }
            }
        });

Я использую этот код. Когда я выбираю элемент в поле со списком, он сортирует таблицу с выбранным элементом. У меня есть второй выпадающий список. Допустим, поле со списком называется combobox2, а элемент combobox2 - «Последние 2 месяца».

Первый столбец таблицы предназначен для дат. Когда я выбираю элемент combobox2 (Последние 2 месяца), я хочу отсортировать таблицу. Я просто хочу видеть строки с возрастом не более 2 месяцев.

Например, если я отправил строку («01/01/2020»), я хочу видеть только строки с («01/01/2020») и после этой даты.

Но с этим кодом я могу видеть только дату отправки. Надеюсь, я хорошо это объяснил. Я могу поделиться дополнительным кодом, если вам нужно.

Ответы

2 camickr Aug 19 2020 at 14:02

Например, если я отправил строку («01/01/2020»), я хочу видеть только строки с («01/01/2020») и после этой даты.

Вам нужно использовать «фильтр даты».

Например, этот фильтр вернет все даты после определенной даты:

RowFilter.dateFilter(ComparisonType.AFTER, new Date());

Прочтите RowFilterAPI, чтобы узнать о других фильтрах, которые вы можете использовать.

Заметка:

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