Nochmal JFileChooser und FileWriter bzw. FileReader



  • Hi,

    hoffe mir kann wer helfen.
    Habe mir jetzt den ganzen Stoff zu FileWriter, FileReader und BufferedWriter/Reader als auch die Klasse file reingezogen.
    Unter der Konsole kann ich damit jetzt einigermaßen umgehen, aber das klappt mit JFileChoose bei GUI Anwendungen nicht. Habe schon mal im Forum nachgeschaut, aber kein Beitrag konnte mir helfen.

    Habe eine JTextArea in einem JFrame mit den Menüeinträgen "Öffnen" und "Beenden". Den ActionListerner hab ich mit jeweils einer anonymen Klasse realisiert. Bis dahin funzt das. Klicke ich auf Öffnen popt der Chooser auf.

    Klasse Hauptmenu
    Das ist ein Teil aus dem Konstrukter, dem das Hauptfenster übergeben wird

    item.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            String cmd = getActionPerformed();
            if(cmd.equals("Öffnen")) {
            c = new JFileChooser();
            c.showOpenDialog(hauptfenster);
           //was muss jetzt hier hin?????
    

    Habe eine test.txt in einem Ordner angelegt und will, wenn ich auf diese klicke, dass die Textdatei in die JTextArea geladen wird.
    Habe es soweit(ist wahrscheinlich aber falsch)

    File file = c.getSelectedFile();
    BufferedReader r = new BufferedReader(
                        new FileReader(file));
    

    Aber wie bekomme ich das in die JTextArea?
    Außerdem ist ein weiteres Prob das da Hauptmenu eine eigene Klasse ist die in der public class Hauptfenster durch setJMenuBar(new hauptmenu(this)); aufgerufen wird. Die JTextArea befindet sich in dieser Klasse. Daher muss ich ja irgendwie das File-Object an diese Klasse übergeben aber wie? 😞 😞
    Danke für eure Hilfe



  • hi, probier mal so. ist mit thread, wenn dus ohne willst, einfach die run methode weglassen.

    Thread serverthread=new Thread(){
       public void run(){
         try{
             FileInputStream fis = new
    FileInputStream(fc.getSelectedFile());
             BufferedReader in=new BufferedReader(new
    InputStreamReader(fis));
    
             StringBuffer cheung=new StringBuffer("");
             String line;
             textArea.setText("");
             while((line=in.readLine())!=null){
                     cheung.append(line).append("\n");
             }
             in.close();
    
             textArea.setText(cheung.toString());
    
             }catch(Exception eee){}
         }
    };
    

    gruß math55


Anmelden zum Antworten