Stufe 3: Laden und Speichern von Labyrinthen
Stufe 3: Laden und Speichern von LabyrinthenKlasse BacktrackIO
Diese Klasse wird aus Backtrack spezialisiert. Sie nutzt die gesamte Infrastruktur. Sie überschreibt
- speichernLabyrinth()
- ladenLabryrinth()
- main(String[] args): Sie müssen hier eine Instanz von BacktrackIO anlegen und anzeigen
Da man hier mit Verzeichnissen im Dateiverwaltungssystem arbeiten muss, sollte man die folgenden GUI Klassen verwenden:
Man kann Sie wie folgt einsetzen um den Zugriff auf eine Datei zu bekommen:
File selectedFile;
JFileChooser jfc
= new JFileChooser(FileSystemView.getFileSystemView().getHomeDirectory());
int returnValue = jfc.showSaveDialog(null);
if (returnValue == JFileChooser.APPROVE_OPTION) {
selectedFile = jfc.getSelectedFile();
System.out.println(selectedFile.getAbsolutePath());
// Ab hier mit der Datei arbeiten...
}
| Damit erhalten Sie, abhängig von Ihrer Plattform, einen Auswahldialog im Home-Verzeichniss Ihres Benutzers. | ![]() |
UML

Speicherstruktur
| Zum Speichern und Laden eines Labyrinths wird eine Kopie der Daten angelegt die zum visualieren angelegt werden. | ![]() |
Musterlösung
Github Projekt scalingbits/dhbwjava
- Klasse Position.java
- Klasse Zelle.java
- Klasse Labyrinth.java
- Klasse Backtrack.java
- Klasse BacktrackIO.java
![]() |
Hilfe! Wie packe ich das an? |
- Erzeugen Sie eine spezialisierte Klasse BacktrackIO
- Kopieren Sie sich das Hauptprogramm der Oberklasse
- Anpassung: Erzeugen Sie ein Objekt der aktuellen Klasse
- Testen: Läuft alles wie zuvor?
- Nutzen Sie die Serialisierung
- Die Klassen Labyrinth und Position müssen die entsprechende Schnittstelle implementieren
- Überschreiben Sie die Methode zum Speichern
- Nutzen Sie Klasse JFileChooser zum Selektieren der Datei
- Holen Sie sich von der Klasse JFileChooser das Ergebnis (Eine Instanz der Klasse File)
- Spicken Sie doch einfach (Im ersten Semester wurde bei den Schnittstellen ein sehr ähnliches Beispiel diskutiert)
- Schreiben Sie Labyrinth, Start und Ziel als Datei
- Verketten Sie FileOutputStream mit ObjectOutputStream
- Schreiben Sie Ihre GUI Datenstruktur des Layrinths in die Datei
- Behandeln Sie alle Ausnahmen wie benötigt...
- Testen: Wurde die Datei geschrieben?
- Vorbereiten zum Laden
- Schreiben Sie eine Methode die alle JButtons updated. Nach dem Laden müssen neue Zustände angezeigt werden
- Überschreiben Sie die Methode zum Laden
- Nutzen Sie den JFileChooser zur Identifikation der Datei
- Laden Sie die Datei. Sie haben nun einen Zeiger auf ein neues Labyrinth
- Machen Sie Ihr Labyrinth editierbar
- Nutzen Sie die Methode update() und Ihr GUI Labyrinth mit dem eingelesen Labyrinth zu überschreiben
- Machen Sie ein Update auf allen Zellen
- Testen
- 1218 views


