Как я могу узнать, когда текст редактируемого JComboBox был изменен?

у меня естьредактируемые JComboBox, где я хочу предпринять некоторые действия при изменении текста, набрав или выделив. В этом случае текст является шаблоном, и я хочу убедиться, что шаблон действителен, и показать совпадения, которые приводят к некоторым тестовым данным.

Сделав очевидное, прикрепив ActionHandler, я обнаружил, что при наборе текста событие в лучшем случае кажется ненадежным (выбор в порядке). И когда этоделает В результате набора текста получаемый текст (с использованием getEditor (). getItem (), поскольку getSelectedItem () получает текст только в том случае, если он был выбран из списка), кажется таким же, каким он был при последнем событии - то естьs всегда отсутствующий символ был набран непосредственно перед тем, как было запущено событие действия.

Я ожидал, что событие действия сработает после некоторой короткой задержки (от 500 мс до 1 секунды), но, похоже, оно сразу же срабатывает при нажатии (если оно срабатывает вообще).

Единственная работоспособная альтернатива, о которой я могу подумать, - это просто запустить 1-секундный таймер при достижении фокуса, убить его при потере фокуса и выполнить работу в качестве действия таймера, если содержимое отличается от последнего времени.

Есть мысли или предложения?

Фрагменты кода не особенно интересны:

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

Ответы на вопрос(3)

Ваш ответ на вопрос