sortowanie JTable

sortowanie JTable
marta1995
  • Rejestracja:ponad 13 lat
  • Ostatnio:ponad 5 lat
  • Postów:155
0

Cześć. Mam problem z posortowaniem JTable. Mimo przegrzebania stron polskich i zagranicznych, nie potrafię znaleźć, prostego i jasnego rozwiązania.
Mam Tabelkę w której wyświetlam błedy. Chce, aby wyświetlane wyniki w tabeli były w kolejności rozsnącej od najmniejszego errora poprzez warningi do info.
Napisałam taki kod, który niezbyt się sprawdza, proszę o pomoc.
Fragment wykonuje się w chwili przyjścia nowego wiersza. Kolumna 0, to kolumna z errorami. Logika komparatora nie jest do końca zaimplementowana, jeszcze nie mam pomysłu jak to rozwiązać, ale na razie chodzi mi o to, aby coś tam sortowało - nie w kolejności rosnącej/malejącej, tylko własnej zaimplementowanej przez siebie...

Kopiuj
TableRowSorter sorter = new TableRowSorter();
        table.setRowSorter(sorter);
        sorter.setModel(table.getModel());
        sorter.setComparator(0, new Comparator<Object>() {
            @Override
            public int compare(Object o1, Object o2) {
                if ("FATAL".equals(o1.toString())) {
                    return 1;
                } else {
                    return -1;
                }
            }
        });

Pytanie na marginesie.
Chce użyć metody fireTableRowsUpdated do odświeżania errorów, np zmienić stan z error na warning. Znajduje go w tabeli po ID (wiersz zawiera ID, typ errorka, opis). Jak na tej podstawie pobrać wiersz na którym wykonać mam fireTableRowsUpdated?

edytowany 1x, ostatnio: bogdans
bogdans
!Wstawiaj kod w znaczniki &lt;code=java&gt;&lt;/code&gt;.
bogdans
Moderator
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 5 lat
0

Fragment wykonuje się w chwili przyjścia nowego wiersza.

Skąd to wiesz? Sortowanie odbywa się gdy użytkownik kliknie odpowiedni nagłówek, ewentualnie po wywołaniu metody fireTableDataChanged.
Odpowiedź na marginesie, użyj fireTableDataChanged. Problem zniknie, a opóźnienia w programie nie zauważysz.
Możesz nie czekać na działania użytkownika i sama ustawiać właściwe uporządkowanie - metoda setSortOrder(nrKolumny).


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
edytowany 1x, ostatnio: bogdans

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.