PCMasters Hardware Forum > Software > GFX, Webdesign und Programmierung > Seite 3 > Java Texteditor

Im PC Forum registrieren


Produktsuche
IDEALO-PRODUKT-SUCHE
idealo preisvergleich
PCM News & Reviews
Antwort
 
 
Alt 21.06.2011, 16:25
Benutzerbild von Infernostar
Threadersteller
Infernostar
 
Standard

Java Texteditor



Hallo Forum!
Ich habe mal wieder eine Frage zu Java. Ich hab die Aufgabe bekommen, einen Texteditor zu erstellen. Nun meine Frage: Ich bekomme das nicht auf die Reihe, dass der die Befehle für Drucken, Speichern und Beenden annimmt und "abspielt". Das funktioniert bei mir einfach nicht. Hier mein Quelltext:

Code:
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;

import javax.swing.*;
import javax.swing.event.MenuKeyEvent;
import javax.swing.event.MenuKeyListener;


public class Main extends JFrame
    {
    String CopiedText;
    public static JTextArea TextField;
    JMenuBar MenuBar;
    JMenu Datei;
    JMenuItem Öffnen, Drucken, Speichern_unter, Beenden;
    JScrollPane ScrollPane;
    JFileChooser FileChooser;
    MenuKiiListener listener;
    
    public Main()
    {
        super("Texteditor");
        this.setBounds(0, 0, 800, 800);
        this.setLayout(new BorderLayout());
        TextField = new JTextArea();
        TextField.setBounds(0, 0, 100, 100);
        this.add(TextField, BorderLayout.CENTER);
        listener = new MenuKiiListener();
        MenuBar = new JMenuBar();
        Datei = new JMenu("Datei");
        Speichern = new JMenuItem("Speichern");
        Öffnen = new JMenuItem("Öffnen");
        Drucken = new JMenuItem("Drucken");
        Speichern_unter = new JMenuItem("Speichern unter");
        Beenden = new JMenuItem("Beenden");
        Speichern.addActionListener(listener);
        Öffnen.addActionListener(listener);
        Drucken.addActionListener(listener);
        Speichern_unter.addActionListener(listener);
        Beenden.addActionListener(listener);
        Datei.add(Speichern);
        Datei.add(Öffnen);
        Datei.add(Drucken);
        Datei.add(Speichern_unter);
        Datei.addSeparator();
        Datei.add(Beenden);
        MenuBar.add(Datei);
        ScrollPane = new JScrollPane();
        ScrollPane.setViewportView(TextField);
        this.add(ScrollPane, BorderLayout.CENTER);
        this.setJMenuBar(MenuBar);
        
        this.setVisible(true);
    }
    public static void main(String[] args) 
    {
        Main myMain = new Main();
    }
    JMenuItem Speichern;

}
class MenuKiiListener implements ActionListener
{
     JFileChooser chooser;
     DataInputStream reader;
     String sText;
     FileOutputStream fos; 
    DataOutputStream dos;
    public MenuKiiListener()
    {
        chooser = new JFileChooser();
    }
    
    public void actionPerformed(ActionEvent e) 
    {
         if (e.getActionCommand() == "Speichern unter")
         {
           int returnv = chooser.showSaveDialog(null);
           if (returnv == chooser.APPROVE_OPTION) 
           {
                File myfile = chooser.getSelectedFile();
                if (!myfile.getName().endsWith(".txt"))
                {
                    //myfile.getName() += ".txt";
                }
                {
                    try 
                    {
                        fos = new FileOutputStream(myfile);
                    } 
                    catch (FileNotFoundException e1) {}
                    dos=new DataOutputStream(fos);
                    try {
                        dos.writeChars(Main.TextField.getText());
                    } catch (IOException e1) {}
                }
   
           }
         }
         if (e.getActionCommand() == "Öffnen")
         {
          int returnv = chooser.showOpenDialog(null);
          if (returnv == chooser.APPROVE_OPTION)
          {
              File myfile = chooser.getSelectedFile();
              try 
              {
                BufferedInputStream buffered = new BufferedInputStream(new FileInputStream(myfile));
                reader = new DataInputStream(buffered);
                try 
                {
                    while((sText = reader.readLine()) != null)
                    {
                        Main.TextField.append(sText);
                    }
                } 
                catch (IOException e1) {}
              } 
              catch (FileNotFoundException e1) {}
              
              finally
              {
              }

          }
          }
         if (e.getActionCommand() == "Drucken")
         {
          System.out.println("Hi");
         }
         if (e.getActionCommand() == "Speichern")
         {
          System.out.println("Hi");
         }
         if (e.getActionCommand() == "Beenden")
         {
          System.out.println("Hi");
         }
    }



    
}
Bitte um Hilfe. :/

LG
Infernostar


EDIT: Falsches Forum!

Geändert von Infernostar (21.06.2011 um 16:33 Uhr).
Alt Heute
Hardware Bot
Computer Informationen
 
Diese Werbung wird registrierten
Mitgliedern nicht angezeigt.
Werden Sie noch heute kostenlos Mitglied
auf PCMasters.de
Standard Weitere Informationen

 
Alt 21.06.2011, 18:04
pixelflat
 
Standard

Funktioniert doch alles. Wird halt nur ein "Hi" in der Konsole ausgegeben...

 
Alt 21.06.2011, 20:52
Benutzerbild von Infernostar
Threadersteller
Infernostar
 
Standard

Ja, das habe ich als "Platzbesetzer" dahin geschrieben. Aber wie ich das programmieren soll, mit welchen Konstruktoren etc. weiß ich nicht....
 
Alt 21.06.2011, 21:10
pixelflat
 
Standard

Für was Konstruktoren? Du brauchst doch nicht zwangsläufig neue Klassen.

Beenden ist wohl das einfachste: System.exit(0);
Fertig. Optimal wäre hier noch eine Abfrage bei ungespeichertem Text.

Speichern ist kaum komplizierter. Entweder es wurde schon gespeichert oder eine vorhandene Datei wurde geöffnet. In beiden Fällen hast du einen Pfad, den du dir merken musst. Idealerweise solltest du fürs Speichern eine extra Methode verwenden, damit du nicht nochmal alles schreiben musst (perfekt wäre übrigens eine eigene Klasse für die Persistenz).

Drucken ist schon etwas schieriger, weil man etwas mehr als "einfaches Standard-Java" braucht. Musste auch erst googeln, aber es gibt wirklich zig Infos dazu:
]
]
]
 
Alt 24.06.2011, 17:52
Benutzerbild von Infernostar
Threadersteller
Infernostar
 
Standard

Das mit dem Drucken krieg ich hoffentlich bald raus. ^^

Und mit Speichern: ich muss doch nur: doSaveCommand(); benutzen, oder nicht? Wenn ja, geht das irgendwie nicht, weiß nicht, warum nicht....
 
Alt 24.06.2011, 18:02
pixelflat
 
Standard

doSaveCommand()? Du meinst irgendwie wegen dem getActionCommand()? Das hat damit nichts zu tun. Ich denke auch nicht, dass es eine doSaveCommand()-Methode gibt.

Außerdem hast du doch oben schon alles was du brauchst, bei der Action für Speichern unter (der "Text" wird übrigens als " T e x t" gespeichert, aber erst mal wayne). Du könntest alles in eine neue IF-Anweisung kopieren und die Auswahl des Pfades (den JFileChooser) weg lassen. Das ist aber recht "dumm" programmiert.

Speicher dir einfach das File als Klassen-Attribut, dann kannst du immer drauf zugreifen und hast den Pfad wenn eine Datei geöffnet oder schon mal mit "Speichern unter" gespeichert wurde.

Hast du den Code selbst geschrieben? Ich glaube nicht, dass du den verstanden hast?
 
Alt 24.06.2011, 18:34
Benutzerbild von Infernostar
Threadersteller
Infernostar
 
Standard

Na ja, teils, teils. Ein Freund hat was geschrieben, ich und den Rest mussten wir aus dem Internet für das Projekt suchen, weil wir das noch nicht hatten. Zudem habe ich vieles verpasst im Unterricht, da ich häufig nicht da war.
Deswegen brauche ich jetzt Hilfe. :S


PS: Hast du ICQ, MSN oder Skype?
hardware forum Neue Frage stellen?
Kurze Zusammenfassung der Frage:
Bitte wählen Sie eine Kategorie:
Mailadresse:
Ihre Frage:
Ihre Frage wird als Gast gespeichert. Sollte eine Antwort im Forum erfolgen, bekommen Sie diese per Email zugeschickt.


Antispam, bitte die folgende Aufgabe lösen: 
 
Um auf dieses Thema zu ANTWORTEN
bitte sich zuerst » hier kostenlos registrieren!!

Antwort

Tags: ,

Ähnliche Tags: , ,


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Kann mich nicht entscheiden: Java oder C++ ? VirusX GFX, Webdesign und Programmierung 5 03.10.2011 16:24
Java Platform SE binary funktioniert nicht mehr sLide Anwendungssoftware 6 25.02.2011 23:13
Java anzeigeprobleme stffn Anwendungssoftware 1 10.11.2010 19:42
Java Probleme Vista 64 BIT Mexx8828 Anwendungssoftware 3 14.07.2010 14:20
Java Editor Problem Thomas Kunz Anwendungssoftware 5 05.05.2010 18:30
Java setz sich nach Browserstart zurück noobichen Anwendungssoftware 2 01.04.2008 09:25
Java mit IE wizo666 Anwendungssoftware 1 21.03.2008 22:06
Java geht mit Internet Explorer nicht ToyotaSupra Anwendungssoftware 0 09.02.2008 13:26


Sie betrachten gerade: Java Texteditor


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:15 Uhr.



Im PC Forum registrieren