sortowanie JTable

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...

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?

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).

1 użytkowników online, w tym zalogowanych: 0, gości: 1