Попытка записи в файл из текстовой области и записи в текстовую область из файла - PullRequest
0 голосов
/ 11 апреля 2020

Я могу успешно писать из текстовой области в файл, но у меня возникают проблемы при записи из файла в текстовую область. Кажется, проблема l ie в Window.setJTextArea (). Я пытался использовать различные типы параметров ввода / вывода, но я в тупике. Я не в себе, пожалуйста, предложите руководство. В классе Window больше основного текста, но он не прошел этап проверки этого сайта, поэтому я удалил его.

class Window {
        file = new File("/Users/samuelballard/eclipse-workspace/cse_1322/ZModule_6/src/lab12/WriteFile.java");
        try {
            file.createNewFile();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public File getFile() {
        return file;
    }
    public void setEmpty() {
        textArea = new JTextArea("Empty");
    }
    public void setJTextArea() {
        textArea = new JTextArea("");
        try {
            reader = new FileReader("/Users/samuelballard/eclipse-workspace/cse_1322/ZModule_6/src/lab12/WriteFile.java");
            textArea.read(reader, "File");
            reader.close();
        } catch(IOException i) {
            i.printStackTrace();
        }
    }
    public void saveJTextArea() {
        try {
            writer = new FileWriter("/Users/samuelballard/eclipse-workspace/cse_1322/ZModule_6/src/lab12/WriteFile.java");
            textArea.write(writer);
            writer.close();
        } catch (IOException i) {
            i.printStackTrace();
        }
    }
}

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

final class EventHandler extends Window {
    EventHandler() {
        put();
        get();
    }
    public void put() {
        put.addActionListener(new ActionListener() {
            // save text area to file
            public void actionPerformed(ActionEvent e) {
                saveJTextArea();
            }

        });
    }
    public void get() {
        get.addActionListener(new ActionListener() {
            // Display Contents of file
            public void actionPerformed(ActionEvent e) {
                setJTextArea();
            }

        });
    }
}

1 Ответ

2 голосов
/ 11 апреля 2020

, но у меня проблемы с записью из файла в текстовую область. Кажется, проблема l ie в Window.setJTextArea ().

Ваш подход правильный. Вы должны использовать read(…) метод JTextArea.

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

textArea = new JTextArea("");

Просто удалите приведенное выше утверждение:

//textArea = new JTextArea("");

Метод read(…) очистит текст в текстовая область перед загрузкой файла.

См .: Загрузка текстового файла в текстовую область для простого рабочего примера.

...