İki tarih arasında nasıl TableRowShorter yapabilirim

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

Bu kodu kullanıyorum. Birleşik giriş kutusunun bir öğesini seçtiğimde, tabloyu seçili öğeyle sıralıyor. İkinci bir açılır kutum var. Combobox'un adının combobox2 olduğunu ve combobox2'nin öğesinin "Son 2 Ay" olduğunu varsayalım.

Tablonun ilk sütunu tarihler içindir. Combobox2 (Son 2 Ay) öğesini seçtiğimde, tabloyu sıralamak istiyorum. Sadece en fazla 2 aylık satırları görmek istiyorum.

Örneğin, String'i ("01/01/2020") göndermişsem, yalnızca ("01/01/2020") ve bu tarihten sonraki satırları görmek istiyorum.

Ama bu kodla sadece gönderdiğim tarihi görebiliyorum. Umarım iyi açıklamışımdır. İhtiyacınız olursa daha fazla kod paylaşabilirim.

Yanıtlar

2 camickr Aug 19 2020 at 14:02

Örneğin, String'i ("01/01/2020") göndermişsem, yalnızca ("01/01/2020") ve bu tarihten sonraki satırları görmek istiyorum.

Bir "tarih filtresi" kullanmanız gerekir.

Örneğin bu filtre, belirli bir tarihten sonraki tüm tarihi döndürür:

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

RowFilterKullanabileceğiniz diğer filtreler için API'yi okuyun .

Not:

Modelde String değerlerini SAKLAMAMALISINIZ. Tarihi, tarihi temsil eden bir nesnede saklamanız ve ardından tarihi biçimlendirmek için özel bir oluşturucu kullanmanız gerekir. Bu, yukarıdan gelen filtrenin düzgün çalışmasına izin verecektir.