textArea.getDocument().addDocumentListener

308
04 марта 2017, 03:01

Здравствуйте. Столкнулся с такой проблемой, у меня при инитиализации приложения создается DocumentListener, который отвечает за подсветку синтаксика, но после того как я загружаю другой документ с помощью:

private void readInFile(String fileName) {
    try {
        FileReader r = new FileReader(fileName);
        textArea.read(r,null);
        r.close();
        currentFile = fileName;
        frame.setTitle(currentFile);
        changed = false;
    }
    catch(IOException e) {
        Toolkit.getDefaultToolkit().beep();
        JOptionPane.showMessageDialog(textArea, "Editor can't find the file called "+fileName);
    }
}

Подсветка работать перестает. Попробовал вынести создание в отдельный метод:

    private void setDocumentListener() {
            textArea.getDocument().addDocumentListener(new DocumentListener() {
             //Здесь код
        }
    }

Прописал вызов в инитиализацию и в метод readInFile чтоб он вызывался повторно при загрузке нового документа, но это не сработало. Он так же работает только до первой загрузки нового документа. Подскажите в чем может быть причина и что я не так делаю?

Answer 1

Спасибо Mikhail Vaysman за комментарий, этот вопрос навел меня на ответ. Я вызывал setDocumentListener() в самом методе readInFile() и он не работал, а после того как добавил его в метод где вызывался readInFile(), все прекрасно заработало. Вопрос закрыт.

READ ALSO
Где найти компонент для ввода градуса, минуты, секунды?

Где найти компонент для ввода градуса, минуты, секунды?

Нужен компонент (на подобии DatePickerDialog) для выбора градусов, минут и секундЕсть ли такое или как это можно самому сделать

282
Не могу поставить Google play на genymotion - Android

Не могу поставить Google play на genymotion - Android

Не могу поставить Google play на genymotion

359
Создать файл по шаблону в intellij-idea

Создать файл по шаблону в intellij-idea

Мну нужно создать gsp файл, но его нет среди стандартных шаблонов

421