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

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

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

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

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

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

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

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

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

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