Skąd mogę wiedzieć, kiedy zmienił się tekst edytowalnego JComboBox?

mamedytowalny JComboBox, w którym chcę podjąć pewne działania za każdym razem, gdy tekst zostanie zmieniony, albo wpisując, albo zaznaczając. W tym przypadku tekst jest wzorcem i chcę sprawdzić, czy wzorzec jest prawidłowy i pokazać dopasowania, które powodują pewne dane testowe.

Po zrobieniu tego, co oczywiste, dołącz ActionHandler, odkryłem, że podczas pisania zdarzenie wydaje się odpalać w sposób niewiarygodny, w najlepszym razie (wybór jest w porządku). A kiedy torobi ogień w wyniku wpisania, pobrany tekst (przy użyciu getEditor (). getItem (), ponieważ getSelectedItem () pobiera tekst tylko wtedy, gdy został wybrany z listy) wydaje się być tekstem takim, jaki był w momencie uruchomienia ostatniego zdarzenia - to znaczy, zawsze brakuje postaci wpisanej bezpośrednio przed wystrzeleniem zdarzenia.

Spodziewałem się, że wydarzenie akcji wystrzeli po krótkim opóźnieniu (od 500 ms do 1 sekundy), ale wydaje się, że natychmiast wystrzeliło po kluczowaniu (jeśli w ogóle zostanie uruchomione).

Jedyną możliwą alternatywą, jaką mogę sobie wyobrazić, jest po prostu uruchomienie 1-sekundowego timera przy ustawieniu ostrości, zabicie go przy utracie ostrości i wykonanie pracy jako działanie timera, jeśli zawartość jest inna niż ostatnio.

Jakieś przemyślenia lub sugestie?

Fragmenty kodu nie są szczególnie interesujące:

find.addActionListener(this);
...
public void actionPerformed(ActionEvent evt) {
    System.out.println("Find: "+find.getEditor().getItem());
    }

questionAnswers(3)

yourAnswerToTheQuestion