Как я могу узнать, когда текст редактируемого 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());
}