У меня есть несколько компонентов в моем окне, большинство из которых JTextFields.Чтобы сэкономить время пользователя при вводе данных, я пытаюсь проанализировать содержимое первого JTextField при заполнении и поместить предложенные значения в последующие JTextFields.
Я добавил FocusListener к первому JTextField, а в focusLost () я извлекаю его содержимое и затем устанавливаю содержимое последующих JTextFields.Это работает правильно при первом использовании приложения.Однако при последующих задачах (т. Е. После обработки всех данных и очистки полей) обычно (но не всегда) происходит сбой.Отладка затруднена из-за проблем с фокусировкой, поэтому я вместо этого прибегнул к ведению журнала и вижу, что в случае неудачи метод getText () в первом JTextField возвращает нуль.Это должно быть проблема синхронизации, но я не могу обойти это.
Метод focusLost () начинается ...
@Override
public void focusLost(FocusEvent e) {
// On losing focus of the title field attempt to populate all the other
// resource detail fields
Component rawComponent = e.getComponent();
if (this.resourceTitleTextField == rawComponent) {
JTextField component = (JTextField) rawComponent;
String title = component.getText();
LOGGER.info("title = " + title);