Hi Leute!
So, muss jetzt wirklich fragen- es hilft nichts...
Sitz nun schon seit 2 Tagen und komm ned weiter. Das einzige was passiert ist, dass sich mein armes Vaio mit 1 GB RAM und 1,73 GHz den Gar ausmacht!?
CPU- Auslastung bei 100%- dürfte eine Endlosschleife beim Lesen bzw. Schreiben auslösen... der Grund ist mir jedoch ned klar!?
Hab ein "JFrame" mit einer "TextArea" erzeugt. Die 2 "JMenuItems" sind "Öffnen" und "Speichern".
Beim "Öffnen" soll der Text einer *.txt- Datei in meiner "TextArea" angezeigt werden und bei "Speichern" soll der Text, den ich in meine "TextArea" geschrieben hab, in eine *.txt- Datei gespeichert werden.
Der Einfachbarkeit halber verwende ich einen "FileDialog".
Hab das GUI vom Verwalten der Datei getrennt. Mir ist das MVC- Konzept noch nicht so geläufig- aber das glaub ich wird schon...
Beim "GUI" hab ich ein Datenfeld vom Typ "TextArea", auf das ich mit der 2ten Klasse "DateiVerwalter" zugreife.
Dieses Datenfeld ist jetzt noch public- es geht mir jetzt nur mal um das richtige Funktionieren.
Später werde ich dann eh mittels sondierenden/verändernden Methoden darauf zugreifen bzw. gleich eine komlett neue Klasse nur für die "TextArea" schreiben und diese dann mit dem "DateiVerwalter" belesen/beschreiben und anschließend dem "GUI" übergeben.
Hmm... ist "DateiVerwalter" dann meine "Logische Einheit"?
------------------------------------------------------------------------------------------
In "DateiVerwalter" hab ich mein "GUI" als konstante Klassenvariable ("static final") drin stehen und erzeuge eine neue Instanz davon (frame) und im "GUI" hab ich einen "DateiVerwalter" als konstante Klassenvariable drin stehen, der natürlich mit "new" initialisiert werden muss.
Außerdem habe ich im "GUI" eine "TextArea" (textArea) als öffentliches Datenfeld stehen. (vorerst nur zum Testen ob es geht)
deswegen: "frame.textArea"
--------------------------------------------------------------------------------------------
thx && greets, David
So, muss jetzt wirklich fragen- es hilft nichts...
Sitz nun schon seit 2 Tagen und komm ned weiter. Das einzige was passiert ist, dass sich mein armes Vaio mit 1 GB RAM und 1,73 GHz den Gar ausmacht!?
CPU- Auslastung bei 100%- dürfte eine Endlosschleife beim Lesen bzw. Schreiben auslösen... der Grund ist mir jedoch ned klar!?
Hab ein "JFrame" mit einer "TextArea" erzeugt. Die 2 "JMenuItems" sind "Öffnen" und "Speichern".
Beim "Öffnen" soll der Text einer *.txt- Datei in meiner "TextArea" angezeigt werden und bei "Speichern" soll der Text, den ich in meine "TextArea" geschrieben hab, in eine *.txt- Datei gespeichert werden.
Der Einfachbarkeit halber verwende ich einen "FileDialog".
Hab das GUI vom Verwalten der Datei getrennt. Mir ist das MVC- Konzept noch nicht so geläufig- aber das glaub ich wird schon...
Beim "GUI" hab ich ein Datenfeld vom Typ "TextArea", auf das ich mit der 2ten Klasse "DateiVerwalter" zugreife.
Dieses Datenfeld ist jetzt noch public- es geht mir jetzt nur mal um das richtige Funktionieren.
Später werde ich dann eh mittels sondierenden/verändernden Methoden darauf zugreifen bzw. gleich eine komlett neue Klasse nur für die "TextArea" schreiben und diese dann mit dem "DateiVerwalter" belesen/beschreiben und anschließend dem "GUI" übergeben.
Hmm... ist "DateiVerwalter" dann meine "Logische Einheit"?
------------------------------------------------------------------------------------------
Code:
public void öffne()
{
FileDialog fd = new FileDialog(frame, "Öffnen", FileDialog.LOAD);
fd.setFile("*.txt");
fd.setVisible(true);
String s1 = fd.getDirectory() + fd.getFile();
File f1 = new File(s1);
BufferedReader reader = null;
if(f1 != null){
frame.textArea.selectAll();
frame.textArea.replaceRange("", frame.textArea.getSelectionStart(), //clear textArea
frame.textArea.getSelectionEnd());
}
try{
reader = new BufferedReader(new InputStreamReader(new FileInputStream(f1)));
String textIn;
textIn = reader.readLine();
while(textIn != null){
frame.textArea.append(textIn + "\n");
textIn = reader.readLine();
}
reader.close();
}
catch(FileNotFoundException e){
System.out.println("Datei nicht gefunden" + e);
}
catch(IOException e){
System.out.println("Lesefehler" + e);
}
}
Code:
public void speichere()
{
FileDialog fd = new FileDialog(frame, "Speichern", FileDialog.SAVE);
fd.setFile("*.txt");
fd.setVisible(true);
String s2 = fd.getDirectory() + fd.getFile();
File f2 = new File(s2);
if(fd.getFile() != null)
{
BufferedWriter writer = null;
try{
writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(f2)));
String textOut = frame.textArea.getText();
while(textOut != null){
writer.write(textOut);
textOut = frame.textArea.getText();
}
writer.close();
}
catch(FileNotFoundException e)
{
System.out.println("Fehler beim Speichern" + e);
}
catch(IOException e)
{
System.out.println("Schreibfehler..." + e);
}
}
}
In "DateiVerwalter" hab ich mein "GUI" als konstante Klassenvariable ("static final") drin stehen und erzeuge eine neue Instanz davon (frame) und im "GUI" hab ich einen "DateiVerwalter" als konstante Klassenvariable drin stehen, der natürlich mit "new" initialisiert werden muss.
Außerdem habe ich im "GUI" eine "TextArea" (textArea) als öffentliches Datenfeld stehen. (vorerst nur zum Testen ob es geht)
deswegen: "frame.textArea"
--------------------------------------------------------------------------------------------
thx && greets, David