У меня есть текстовое поле и кнопка поиска. Если пользователь вводит ровно 13 цифр (штрих-код), тогда я хочу автоматически запустить поиск.
У меня есть DocumentListener в текстовом поле, и я обрабатываю метод insertUpdate, чтобы определить, что было введено 13 цифр. Я мог бы вызвать код поиска непосредственно в этот момент (и он работает), но хотя 13-й символ был набран, он фактически не отображается на экране, пока поиск не завершится.
Я бы предпочел вместо этого нажать кнопку Поиск и попробовал два способа:
DocumentListener dlBarcode = new DocumentAdaptor() {
public void insertUpdate(DocumentEvent e) {
String value = jtBarcode.getText();
if (isBarcode(value)) {
ActionEvent ae = new ActionEvent((Object)jbSearch,
ActionEvent.ACTION_PERFORMED, "");
Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(ae);
}
}
};
Второй должен использовать:
jbSearch.dispatch(ae);
Похоже, что ни один из методов не вызывает триггер ActionListener в jbSearch. Подскажите, пожалуйста, что я делаю не так?