AWT Speichern von Listkomponenten und Öffnen derer

Sahty

Mitglied
Halli Hallo!

Ich tüftle schon seit einiger Zeit, komme aber einfach nicht auf den Fehler:
Ich möchte ein paar Werte, die in einer AWT-list stehen, in einem file speichern.
Danach sollen diese auch wieder geöffnet werden können und somit auch wieder in der AWT-list erscheinen.
Jedoch erscheint nichts in der AWT-list, sie bleibt einfach leer :bahnhof:

Hier mein Quelltext:

Java:
private void speichern(java.awt.event.ActionEvent evt) {                           
        int k = list1.getItemCount();
        for (int i = 1; i == k; i++){
        int a;
          try{
            a=Integer.parseInt(list1.getItem(i-1));
          }
          catch(NumberFormatException nfe ){
            a=0;
          }
          try {
            RandomAccessFile file = new RandomAccessFile("Test.dat","rw");
            file.writeInt(a);
            file.close();
          }
          catch ( IOException ie ) {
          }
        }
    }


private void oeffnen(java.awt.event.ActionEvent evt) {                         
        int k = 1;
        for(int i = 0; i == k; i++){
        int a=0;
          try {
            RandomAccessFile file = new RandomAccessFile("Test.dat","r");
            k = (int) ((file.length()) / 4);
            a=file.readInt();
            file.close();
          }
          catch ( IOException ie ) {
          }
          list1.add(""+a);
        }
    }

Ich arbeite übrigens mit NetBeans IDE 6.7.1, habe Vista

Liebe Grüße
 
Zuletzt bearbeitet:

Michael...

Top Contributor
Werden die Einträge denn überhaupt in eine Datei geschrieben bzw. wieder korrekt ausgelesen?
Abgefangene Exceptions sollte man auch beachten (Zeile 16 und 32). Lass sie Dir z.B mit printStackTrace() auf der Konsole ausgeben.
 

Sahty

Mitglied

Oli

Top Contributor
Hallo,

in beiden Funktionen ist der

Code:
catch ( IOException ie ) {
}

leer. Das sollte man tunlichst unterlassen, denn dann sieht man nicht, wenn was schiefgeht. Und ich bin sicher, dass das bei dir der Fall sein dürfte.

Versuchs mal so:

Code:
catch ( IOException ie ) {
  e.printStackTrace();
}

Dann wird dir die Exception ausgegeben und du kannst auf den Fehler reagieren.


Grüße Oli
 

Michael...

Top Contributor
Michael... hat gesagt.:
Werden die Einträge denn überhaupt in eine Datei geschrieben bzw. wieder korrekt ausgelesen?
Wie überprüfe ich das denn?
In dem Du nach dem Speichern zum einen schaust ob die Datei überhaupt existiert und wenn ja mit einem Texteditor öffnest und schaust was in der Datei steht. Aber vermutlich wird beim Schreiben bereits eine Exception geworfen - deshalb Exception ausgeben lassen (s. Post von Oli)
 

Sahty

Mitglied
Danke ersteinmal für eure Hilfe. Ich habe das ausgeben der Exception mit eingebaut, jedoch wird weder beim speichern noch beim öffnen etwas ausgegeben. Also denke ich mal, dass es nicht daran liegen wird.

Wenn ich die for-Schleife in der Klasse "oeffnen" weglasse, dann gibt er mir zwar etwas aus, jedoch nicht die gespeicherten Zahlen, sondern immer die gleiche Zahl (1074266112).
Hier mal der veränderte Quelltext dazu:

Java:
private void oeffnen(java.awt.event.ActionEvent evt) {                         
        //int k = 1;
        //for(int i = 0; i == k; i++){
        int a=0;
          try {
            RandomAccessFile file = new RandomAccessFile("Test.dat","r");
            //k = (int) ((file.length()) / 4);
            a=file.readInt();
            file.close();
          }
          catch ( IOException ie ) {
              ie.printStackTrace();
          }
          list1.add(""+a);
       // }
    }

(Ich habe auch mal double anstatt integer verwendet, dann gibt er mir beim Öffnen nicht 1074266112 sondern 3.0 aus ... ???:L)

Liebe Grüße...
 

Michael...

Top Contributor
Was mir jetzt erst auffällt. Das
Java:
RandomAccessFile file = new RandomAccessFile("Test.dat", ...);
muss in beiden Methoden ausserhalb der Schleife passieren und das close() entsprechend nach der Schleife. Denn erst Datei öffnen alle Werte lesen/schreiben, dann Datei schliessen.
Einlesen würde das ganze über eine while Schleife, da man ja in der Regel vorher nicht weiss wieviel in der Datei drin steht.
 

Michael...

Top Contributor
Die Methode speichern könnte z.B. so aussehen:
Java:
private void speichern() {
		try {
			RandomAccessFile file = new RandomAccessFile("Test.dat", "rw");
			for (int i = 0; i < list1.getItemCount(); i++) {
				int a = 0;
				try {
					a = Integer.parseInt(list1.getItem(i - 1));
				} catch (NumberFormatException nfe) {}
				file.writeInt(a);
			}
			file.close();
		} catch (IOException ie) {
			ie.printStackTrace();
		}
}
Das ActionEvent brauchst Du garnicht übergeben, da Du es in der Methode nicht nutzt. Die Abbruchbedingung in einer for Schleife sollten immer mit <(=) oder >(=) gemacht werden und nicht mit == da die Zählvariablen u.U. auch mal innerhalb der Schleife manipuliert werden könnten.
 

Sahty

Mitglied
Vielen Dank, Michael :toll:! Jetzt läuft mein Programm so, wie es sein soll.
Das Problem lag wohl wirklich hauptsächlich daran, dass ich das erstellen und schließen des files innerhalb der Schleife gehabt habe.

Hier nochmal mein jetziger Quelltext (man soll doch seine richtige Lösung dann nochmal posten, oder?):

Java:
private void speichern(java.awt.event.ActionEvent evt) {                           
        try {
            RandomAccessFile file = new RandomAccessFile("Test.dat", "rw");
            for (int i = 0; i < list1.getItemCount(); i++) {
                int a = 0;
                try {
                    a = Integer.parseInt(list1.getItem(i));
                }
                catch (NumberFormatException nfe) {
                }
                file.writeInt(a);
            }
            file.close();
        }
        catch (IOException ie) {
            ie.printStackTrace();
        }

    }


private void oeffnen(java.awt.event.ActionEvent evt) {                         
        int a=0;
        try {
            RandomAccessFile file = new RandomAccessFile("Test.dat","r");
            for(int i = 0; i < (int) ((file.length()) / 4); i++){
                a=file.readInt();
                list1.add(""+a);
            }
            file.close();
        }
        catch ( IOException ie ) {
            ie.printStackTrace();
        }
                
    }

MfG und noch schöne Feiertage =)!

PS: Das ActionEvent brauche ich doch, damit meine Buttons reagieren, oder etwa nicht? Deswegen habe ich es drinnen gelassen. (Im Übrigen lässt mich NetBeans da nichts ändern)
 

Michael...

Top Contributor
PS: Das ActionEvent brauche ich doch, damit meine Buttons reagieren, oder etwa nicht? Deswegen habe ich es drinnen gelassen. (Im Übrigen lässt mich NetBeans da nichts ändern)
Die Variable evt wird in der Methode nicht genutzt, daher ist die Übergabe eigentlich überflüssig - aber diese GUI Builder erzeugen manchmal recht graußigen Code.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
MiMa Speichern von Image als JPG auf Festplatte AWT, Swing, JavaFX & SWT 9
J Eingaben aus Textfield & ComboBox speichern und in ComboBox wieder ausgeben AWT, Swing, JavaFX & SWT 3
officialmaxl JavaFX Textfield getTextfield() in String speichern AWT, Swing, JavaFX & SWT 1
missy72 JavaFX ObservableList in einer ArrayList speichern. AWT, Swing, JavaFX & SWT 7
B Swing Sudoku: Laden / Speichern von Zahlen aus/in mehrere JTextFields aus/in eine(r) Textdatei AWT, Swing, JavaFX & SWT 9
J Warum kann ich die Spaltennummer in der Konsole anzeigen, diese aber nicht speichern ? AWT, Swing, JavaFX & SWT 6
F Output Stream / File Dateien / Speichern AWT, Swing, JavaFX & SWT 13
D String als Textdatei in ausgewähltem Speicherplatz speichern AWT, Swing, JavaFX & SWT 32
A Swing Datei lässt sich zwar speichern, aber nicht laden (Inhalt im JTextField anzeigen) AWT, Swing, JavaFX & SWT 18
S URLS speichern von Internetseiten AWT, Swing, JavaFX & SWT 3
S Bild neu skalieren - Bild in Bild speichern? AWT, Swing, JavaFX & SWT 6
P Adressbuch Werte speichern AWT, Swing, JavaFX & SWT 21
G Eingabe in JTextField in Array speichern und in JList ausgeben AWT, Swing, JavaFX & SWT 7
G JTextField Eingabe in DB speichern AWT, Swing, JavaFX & SWT 68
B TableView als PDF speichern AWT, Swing, JavaFX & SWT 8
cool_brivk24 libGDX Welt speichern AWT, Swing, JavaFX & SWT 0
R Scene speichern AWT, Swing, JavaFX & SWT 7
D Inhalt von JTextField in MySQL speichern. Wie ? AWT, Swing, JavaFX & SWT 1
J Text in ein Textfeld eingeben und speichern AWT, Swing, JavaFX & SWT 27
S Swing jScrollPane - pro Eintrag der Liste, die jCheckBoxes Speichern die in dem Eintrag aktiviert wurden AWT, Swing, JavaFX & SWT 2
A Swing Wie Daten in der Form speichern? Array oder ArrayList AWT, Swing, JavaFX & SWT 2
I JavaFX formatierter Text in PDF speichern AWT, Swing, JavaFX & SWT 4
GenerationLost JavaFX FileChooser speichern ohne Zieldatei? AWT, Swing, JavaFX & SWT 12
A Swing Gemaltes Bild über saveDialog speichern unter AWT, Swing, JavaFX & SWT 15
S AWT Daten über TextField und Button in array speichern AWT, Swing, JavaFX & SWT 5
U Eingabe von TextField in variable speichern AWT, Swing, JavaFX & SWT 2
M Kamerabilder in ein Ordner speichern AWT, Swing, JavaFX & SWT 12
F Gezeichnetes als bild speichern AWT, Swing, JavaFX & SWT 4
I JavaFX Speichern der eingefügten Einträge beim Neustart des Programms AWT, Swing, JavaFX & SWT 2
I Variabeln speichern in Desktop Anwendung AWT, Swing, JavaFX & SWT 2
N Swing Benötige Hilfe um ein Swing Canvas zu speichern AWT, Swing, JavaFX & SWT 4
D Objekte einer Oberfläche in eine Datei/Ordner speichern AWT, Swing, JavaFX & SWT 9
S JavaFX Fenstergrösse automatisch Speichern und Laden AWT, Swing, JavaFX & SWT 4
J Swing Fenstereinstellungen speichern AWT, Swing, JavaFX & SWT 2
M Combo Box auswahl in eine Datenbank speichern AWT, Swing, JavaFX & SWT 1
M ausgewählte Inhalt von ListItem inn ComboBox in der Tabelle speichern AWT, Swing, JavaFX & SWT 0
M Bild Beschreibung mit ImageIO speichern AWT, Swing, JavaFX & SWT 1
C Image laden und Speichern - Image wird auf JPanel nicht angezeigt AWT, Swing, JavaFX & SWT 4
J Swing JTable speichern AWT, Swing, JavaFX & SWT 2
C GUI öfters durchlaufen und hinterher Bild speichern AWT, Swing, JavaFX & SWT 1
S Panelzeichnung speichern AWT, Swing, JavaFX & SWT 2
O JTextfield und JComboBox Wert in SQL Database speichern AWT, Swing, JavaFX & SWT 4
J Bilder als Variable an einem Objekt speichern AWT, Swing, JavaFX & SWT 3
M Bild aus JLabel resizen und speichern AWT, Swing, JavaFX & SWT 0
A Swing Malprogramm Bild speichern? AWT, Swing, JavaFX & SWT 9
G Subimage von BufferedImage speichern AWT, Swing, JavaFX & SWT 4
Y JavaFX Bild speichern und Pfad dazu abspeichern AWT, Swing, JavaFX & SWT 2
D JPanel Graphic2D als BufferedImage Speichern AWT, Swing, JavaFX & SWT 5
A JFileChooser Datei speichern AWT, Swing, JavaFX & SWT 4
B Bildverlust bei Speichern in .jar-Archiv AWT, Swing, JavaFX & SWT 3
J 2D-Grafik Bildteile in ein anderes Bild speichern AWT, Swing, JavaFX & SWT 12
B Datenübergabe zwischen Tabs und Daten speichern AWT, Swing, JavaFX & SWT 2
J JFileChooser - Datei speichern AWT, Swing, JavaFX & SWT 7
J JTree speichern AWT, Swing, JavaFX & SWT 4
kodela Teil eines Panels als Graphik speichern AWT, Swing, JavaFX & SWT 3
T Modell als XML Speichern / Laden AWT, Swing, JavaFX & SWT 9
P TextField beim klicken von JButton speichern AWT, Swing, JavaFX & SWT 17
P Öffnen, Speichern von Dat. über DialogBoxen AWT, Swing, JavaFX & SWT 10
B Zustand eines GUI speichern AWT, Swing, JavaFX & SWT 8
I Dialog zum Speichern? AWT, Swing, JavaFX & SWT 16
M JTable Drucken NullpointerException +JTable speichern AWT, Swing, JavaFX & SWT 6
J Swing JTable-Daten Speichern und bei zeilen-änderung beibehalten. AWT, Swing, JavaFX & SWT 6
M Datei Speichern unter Dialog - SWT AWT, Swing, JavaFX & SWT 3
T SWT:Datei speichern / öffnen AWT, Swing, JavaFX & SWT 6
T speichern funktioniert,aber öffnen nicht AWT, Swing, JavaFX & SWT 2
W Grafik von JFrame korrekt speichern AWT, Swing, JavaFX & SWT 7
M Position eines JLabels speichern? AWT, Swing, JavaFX & SWT 3
P nicht sichtbares JPanel / JFrame als Image speichern AWT, Swing, JavaFX & SWT 3
A BufferedImage nach dem Speichern immer schwarz AWT, Swing, JavaFX & SWT 8
J Speichern, Event, Hintergrund getAppletContext AWT, Swing, JavaFX & SWT 2
S JTable - Sortierung beibhalten / Speichern. AWT, Swing, JavaFX & SWT 3
C Checkbox-zustände in einem JFrame speichern AWT, Swing, JavaFX & SWT 8
R Graphics-Object speichern AWT, Swing, JavaFX & SWT 4
T Image skaliert in Variable speichern AWT, Swing, JavaFX & SWT 6
B Panel als Bild speichern AWT, Swing, JavaFX & SWT 11
Daniel_L Grafik erstellen, drin zeichnen und dann speichern AWT, Swing, JavaFX & SWT 2
K Swing Komponente als Bild speichern AWT, Swing, JavaFX & SWT 11
E Profilsichten speichern und dynamsich erzeugen?! AWT, Swing, JavaFX & SWT 2
N JTable direkt editierenund in Datenbanken speichern AWT, Swing, JavaFX & SWT 5
D Swing JTable in Datei speichern und laden AWT, Swing, JavaFX & SWT 3
R JComboBox Ausgabe in String speichern AWT, Swing, JavaFX & SWT 3
F Wert zu Eintrag in ComboBox speichern?! AWT, Swing, JavaFX & SWT 7
0 Ausschnitt eines JPanels als Bild speichern AWT, Swing, JavaFX & SWT 4
A Programmieren einer Agenda mit einer Liste (als Applet und .txt zum Speichern) AWT, Swing, JavaFX & SWT 7
B JTextPane formatierten Inhalt speichern AWT, Swing, JavaFX & SWT 2
R TextField auslesen & in Objekteigenschaften speichern AWT, Swing, JavaFX & SWT 22
B textdatei speichern AWT, Swing, JavaFX & SWT 9
K Swing JFileChooser zum Speichern - FileFilter AWT, Swing, JavaFX & SWT 2
jgh Speichern von User-GUI-Einstellungen AWT, Swing, JavaFX & SWT 2
B Swing Suche JFileChooser zum Speichern AWT, Swing, JavaFX & SWT 2
N gezeichnete Graphiken speichern und wieder anzeigen AWT, Swing, JavaFX & SWT 8
M AWT Datei auf server speichern und beschreiben AWT, Swing, JavaFX & SWT 7
G Swing Image speichern / 0 Byte AWT, Swing, JavaFX & SWT 7
U Wo eingeloggten Benutzer "speichern" AWT, Swing, JavaFX & SWT 10
J Aus einer JList den Inhalt als Textdatei speichern AWT, Swing, JavaFX & SWT 15
C Bild in einer Datenbank speichern? AWT, Swing, JavaFX & SWT 7
Z JTable: Speichern probleme AWT, Swing, JavaFX & SWT 12
L JPanel als Image speichern AWT, Swing, JavaFX & SWT 3
D SWT String aus Textfeld auslesen und in eine Tabelle speichern AWT, Swing, JavaFX & SWT 5
J Werte aus Combobox speichern AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen


Oben