Bagaimana cara membuat TableRowShorter antara dua Tanggal

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));
                    }
                }
            }
        });

Saya menggunakan kode ini. Ketika saya memilih item dari kotak kombo, itu mengurutkan tabel dengan item yang dipilih. Saya memiliki kotak kombo kedua. Misalkan nama combobox adalah combobox2 dan item dari combobox2 adalah "2 Bulan Terakhir".

Kolom pertama tabel adalah tanggal. Ketika saya memilih item combobox2 (2 Bulan Terakhir), saya ingin mengurutkan tabel. Saya hanya ingin melihat baris dengan usia maksimal 2 bulan.

Misalnya jika saya mengirim String ("01/01/2020"), saya hanya ingin melihat baris dengan ("01/01/2020") dan setelah tanggal ini.

Tetapi dengan kode ini saya hanya dapat melihat tanggal yang saya kirim. Saya harap saya menjelaskannya dengan baik. Saya dapat membagikan lebih banyak kode jika kalian membutuhkan.

Jawaban

2 camickr Aug 19 2020 at 14:02

Misalnya jika saya mengirim String ("01/01/2020"), saya hanya ingin melihat baris dengan ("01/01/2020") dan setelah tanggal ini.

Anda perlu menggunakan "filter tanggal".

Misalnya filter ini akan mengembalikan semua tanggal setelah tanggal tertentu:

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

Baca RowFilterAPI untuk mengetahui filter lain yang dapat Anda gunakan.

catatan:

Anda TIDAK boleh menyimpan nilai String dalam model. Anda harus menyimpan tanggal dalam objek yang mewakili tanggal dan kemudian menggunakan perender khusus untuk memformat tanggal. Ini akan memungkinkan filter dari atas bekerja dengan baik.