Benedikt Sauer: TXT Datei in Fenster ausgeben

Hallo Programmierer!!

ICh benötige unbedingt Hilfe!! Ich brauche bis heute Abend ein ganz kleines Programm das eine Textdatei ausliest und den Inhalt in ein neues Fenster überträgt. Es sollte unterhalb des Textes noch ein Button sein um das Fenster zu schließen. Wäre echt super nett, wenn mir da jemand ein Programm schicken könnte.

Benedikt

  1. Hallo Benedikt,

    Wäre echt super nett, wenn mir da jemand ein Programm schicken könnte.

    Das klingt irgendwie sehr nach "Hausaufgabe" oder so. Wieso sollten "wir" die für dich machen? Bitte schlag doch noch einmal http://dict.leo.org/?self nach...
    Wenn du konkrete Probleme hast, so kannst du natürlich gerne fragen, aber fertige Lösungen gibt's hier nicht.

    Grüße
      David

    --
    >>Nobody will ever need more than 640k RAM!<<
    1981 Bill Gates
    1. Hallo Benedikt,

      Wäre echt super nett, wenn mir da jemand ein Programm schicken könnte.
      Das klingt irgendwie sehr nach "Hausaufgabe" oder so. Wieso sollten "wir" die für dich machen? Bitte schlag doch noch einmal http://dict.leo.org/?self nach...
      Wenn du konkrete Probleme hast, so kannst du natürlich gerne fragen, aber fertige Lösungen gibt's hier nicht.

      Grüße
        David

      Ne ist keine Hausaufgabe!!

      Hier mein Code (Anwendung1):

      import javax.swing.UIManager;
      import java.awt.*;

      public class Anwendung1 {
        boolean packFrame = false;

      /**Die Anwendung konstruieren*/
        public Anwendung1() {
          Frame1 frame = new Frame1();
          //Frames überprüfen, die voreingestellte Größe haben
          //Frames packen, die nutzbare bevorzugte Größeninformationen enthalten, z.B. aus ihrem Layout
          if (packFrame) {
            frame.pack();    }
          else {
            frame.validate();
          }
          //Das Fenster zentrieren
          Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
          Dimension frameSize = frame.getSize();
          if (frameSize.height > screenSize.height) {
            frameSize.height = screenSize.height;
          }
          if (frameSize.width > screenSize.width) {
            frameSize.width = screenSize.width;
          }
          frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
          frame.setVisible(true);
        }
        /**Main-Methode*/
        public static void main(String[] args) {
          try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
          }
          catch(Exception e) {
            e.printStackTrace();
          }
          new Anwendung1();
        }
      }
      ----------------------------------------
      Hier ist der Code von Frame1:

      import java.io.*;
      import java.awt.*;
      import java.awt.event.*;
      import javax.swing.*;
      import javax.swing.event.*;

      public class Frame1 extends JFrame {
         JPanel contentPane;
         BorderLayout borderLayout1 = new BorderLayout();
         JPanel jPanel1 = new JPanel();
         JButton jButton1 = new JButton();

      /**Den Frame konstruieren*/
         public Frame1() {
           enableEvents(AWTEvent.WINDOW_EVENT_MASK);
           try {
             jbInit();
           }
           catch(Exception e) {
             e.printStackTrace();
           }
         }

      /**Initialisierung der Komponenten*/
         private void jbInit() throws Exception  {
           //setIconImage(Toolkit.getDefaultToolkit().createImage(Frame1.class.getResource("[Ihr Symbol]")));
          contentPane = (JPanel) this.getContentPane();
          contentPane.setLayout(borderLayout1);
          this.setSize(new Dimension(1000, 750));
          this.setTitle("Anmeldung auf Sauercenter");
          jPanel1.setLayout(null);
          jButton1.setText("OK");
          jButton1.setBounds(new Rectangle(415, 643, 108, 44));
          jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(ActionEvent e) {
              jButton1_actionPerformed(e);
            }
          });

      contentPane.add(jPanel1, BorderLayout.CENTER);
          jPanel1.add(jButton1, null);

      int c;
            try {FileReader f = new FileReader("Test.txt");
                while ((c=f.read()) != -1)
                  System.out.print ((char)c);
            }
            catch (IOException e) {
                System.out.println("Fehler beim Lesen!!");
            }

      }
        /**Überschrieben, so dass eine Beendigung beim Schließen des Fensters möglich ist.*/
        protected void processWindowEvent(WindowEvent e) {
          super.processWindowEvent(e);
          if (e.getID() == WindowEvent.WINDOW_CLOSING) {
            System.exit(0);
          }
        }

      void jButton1_actionPerformed(ActionEvent e) {
          System.exit(0);
        }
      }

      ------------------
      Das Problem ist, dass der Text aus der Datei zwar in der Konsole ausgegeben wird aber nicht im Fenster!!
      Wäre super, wenn mir jemand Tipps geben könnte 8bzw. Verbesserungsvorschläge)

      1. Hallo,

        jetzt fügst du zu dem Panel mal noch eine JTextArea hinzu, denn
        schließlich soll der Text ja irgendwo ausgegeben werden.

        Die JTextArea füllst du dann so ungefähr wie da unten:

        int c;
              try {FileReader f = new FileReader("Test.txt");
                  while ((c=f.read()) != -1)
                    System.out.print ((char)c);
              }

        Wobei es eine ausgesprochen schlechte Idee ist, eine Textdatei zeichen-
        weise und noch dazu ungepuffert auszugeben. Du solltest dir dringend
        mal den BufferedReader anschauen. Mit dem kannst du den Text dann auch
        zeilenweise auslesen (-> Methode "readLine()").

        Am einfachsten wäre es wohl, du würdest den Text zeilenweise auslesen
        und jede Zeile dann an die TextArea anfügen (-> "append(String)").

        Hier noch zwei Links zum Nachschlagen:
        http://java.sun.com/j2se/1.4.2/docs/api/java/io/BufferedReader.html
        http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JTextArea.html

        Gruß
        Slyh

        1. Hallo!!

          Ich bekomme es einfach nicht hin in eine TextArea ein Text aus einer Datei einzufügen!! Sitze jetzt schon einige Zeit dran und bekomme es nicht hin. Wäre super nett, wenn mir da jemand weiterhelfen könnte. Ich kann auch die Dateien zuschicken!!

          Benedikt

          1. Hallo,

            Ich bekomme es einfach nicht hin in eine TextArea ein Text aus einer Datei einzufügen!!

            Ja, das schriebst du schon in deinem ersten Posting...

            Sitze jetzt schon einige Zeit dran und bekomme es nicht hin. Wäre super nett, wenn mir da jemand weiterhelfen könnte. Ich kann auch die Dateien zuschicken!!

            Aha. Was geht nicht?

            Wo ist das Problem die JTextArea einzufügen? Den restlichen Dialog hast
            du ja wohl auch selbst gemacht, oder? Sieht sehr nach JBuilder aus. Füg
            doch bitte noch eine JTextArea hinzu.

            Und dann schreibst du einfach dort, wo du jetzt schon ein System.out.println()
            machst, folgendes:
              myCoolTextArea.append(line);

            (Vorausgesetzt du hast die TextArea "myCoolTextArea" benannt.)
            That's all. Ich sehe das Problem nicht. Sorry.

            Gruß
            Slyh

            1. Hallo!!

              Jetzt habe ich mein Fehler gefunden, weshalb es nicht so funktioniert hat. Jetzt eine letzte Frage: Der Text aus der Datei wird in eine Zeile geschrieben. Wie kann ich die Formatierung der textdatei in die TextArea übernehmen??

              Benedikt

              1. Hallo,

                Jetzt eine letzte Frage: Der Text aus der Datei wird in eine Zeile geschrieben. Wie kann ich die Formatierung der textdatei in die TextArea übernehmen??

                Einfach ein myCoolTextArea.append("\n"); nach jeder eingelesen und
                angefügten Zeile aufrufen.

                Gruß
                Slyh

                1. Hallo!!

                  Hat jetzt mit dem Zeilenumbruch auch funktioniert. --> kann man für das TextArea auch eine SrollPane benutzen (weil TextArea feste Größen hat)

                  Benedikt

                  1. Hallo,

                    Hat jetzt mit dem Zeilenumbruch auch funktioniert. --> kann man für das TextArea auch eine SrollPane benutzen (weil TextArea feste Größen hat)

                    Jap. Schau in der API-Doku nach "JScrollPane". (Da gibt's auch ein
                    Tutorial dazu.)

                    Übrigens darfst du ruhig vorher selbst schauen, bevor du hier eine
                    Frage postest.

                    Gruß
                    Slyh

                    1. Hallo!!

                      Habe jetzt statt der TextArea eine ScrollPane benutzt. Da es ja append nicht gibt, wollte ich fragen, was man anstatt append benutzen kann um Text aus einer Datei in ein ScrollPane zu legen.

                      Benedikt