Использование FocusListener для извлечения содержимого из JTextField и заполнения других JTextFields - PullRequest
0 голосов
/ 01 января 2019

У меня есть несколько компонентов в моем окне, большинство из которых 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);
...