मैं टेक्स्ट एरिया से फाइल में सफलतापूर्वक लिख सकता हूं, लेकिन फाइल से टेक्स्ट एरिया में लिखने में परेशानी हो रही है। ऐसा लगता है कि समस्या Window.setJTextArea() में है। मैंने विभिन्न प्रकार के I/O विकल्पों का उपयोग करने का प्रयास किया है, लेकिन मैं गतिरोध में हूं। मैं यहाँ अपनी गहराई से बाहर हूँ, कृपया मार्गदर्शन प्रदान करें। क्लास विंडो में और बॉडी टेक्स्ट है लेकिन यह इस साइट के रिव्यू स्टेज को पास नहीं कर रहा था इसलिए मैंने इसे डिलीट कर दिया।

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();
            }

        });
    }
}
0
sam 11 अप्रैल 2020, 00:06

1 उत्तर

सबसे बढ़िया उत्तर

लेकिन मुझे फाइल से टेक्स्ट एरिया में लिखने में परेशानी हो रही है। ऐसा लगता है कि समस्या Window.setJTextArea() में है।

आपका दृष्टिकोण सही है। आपको JTextArea की read(…) विधि का उपयोग करना चाहिए।

हालांकि, समस्या यह है कि आप एक नया JTextArea बनाते हैं और आप कभी भी टेक्स्ट क्षेत्र को फ्रेम में नहीं जोड़ते हैं। तो पाठ सिर्फ स्मृति में बैठा है लेकिन फ्रेम पर प्रदर्शित नहीं होता है।

textArea = new JTextArea("");

बस उपरोक्त कथन को हटा दें:

//textArea = new JTextArea("");

फ़ाइल लोड करने से पहले read(…) विधि टेक्स्ट क्षेत्र में टेक्स्ट को साफ़ कर देगी।

देखें: एक टेक्स्ट फ़ाइल को टेक्स्ट क्षेत्र में लोड करना के लिए एक साधारण कामकाजी उदाहरण।

2
camickr 11 अप्रैल 2020, 03:51