Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich habe ein Eingabeformular gebastelt und beim ausfüllen und Speichern werden die Datensätze in eine .txt datei gespeichert.
Nun möchte ich diese eingetragenen Datensätze durchblättern. Da ich leider ein neuling bin weiß ich nicht wie ich das anstellen soll ;( ich hab mir überlegt das es mit einem 2D - Array evtl machbar wäre könntet ihr mir vll helfen?
Du brauchst ein File und einen FileReader, damit kannst du für jede Zeile Strings einlesen
Die kannst du dann in einer ArrayList/StringBuilder oder so speichern, je nachdem was du vor hast...
ich habe keine ahnung wie ich das machen soll oO ich hab nich soviel ahnung.
also die .txt file muss per fileread ausgelesen werden, jede einzelne zeile oder?
dann muss ja jeder datensatz zb. name wieder zu name etc beim durchblättern.
keine ahnung wie ich das hinbekomme, tutorials mit arraylists oder so würde mir helfen ;(
ich weiß nicht wie deine textdatei aufgeteilt ist ob jede zeile eina attribut ist oder ob in einer zeile mehrer Attribute stehen...Eventuell wäre das auslesen mit xml leichter gewesen...
Also ich würde es so machen...
Leg dir eine Klasse(nur getter/setter) für deine Daten mit deinen ganzen Attributen.
Wenn man Übernehmen klickt:
Legst du eine neue Instanz von der Klasse an und befüllst die Daten von deine Textfeldern
Speicherst diese ganze Instanzen in eine ArrayList....
und dann Schreibst du die ganze ArrayList mit allen Objekten in eine Datei(ObjectOutputStream + ObjectInputStream ) und liest die auch wieder ein... Das ist viel geschickter, weil dann hast du nur noch Objekte zu verwalten udn keine einzelnen Strings mehr...
und wenn du dann das nächte Formluar willst dann machst du einfach
public class FormularDaten implents Serializable
{
private String name;
private String strasse;
usw...
get/set methoden;
}
dann in deiner GUI Klasse
Code:
public class GUI....
private ArrayList<FormularDaten> daten;
private int index = 0;
public GUI
{
laden/oder instanzieren von der liste
}
//für deinen button >>
public void next()
{
index++;
FormularDaten daten = daten.get(index);
}
//für deinen button >>
public void previous()
{
index--;
FormularDaten data = daten.get(index);
}
private fillTextfileds(FormularDaten daten)
{
txtName.setText(daten.getName());
txtStrasse.setText(daten.getStrasse());
usw.
}
//für deinen übernehmen button
public createData()
{
FormularDaten data= new FormularDaten (),
daten.setText(txtxName.getText());
daten.setStrasse(txtStrasse.getText();
usw....
daten.add(data);
}
so in etwa und nun wenn du das fenster schließt den frame oder panel oder was es auch immer ist...
dann speicherst du die arraylist(daten) in eine datei...
so in etwa und nun wenn du das fenster schließt den frame oder panel oder was es auch immer ist...
dann speicherst du die arraylist(daten) in eine datei...
da des ist schon klar, aber immer noch besser als eine txt datei oder?
wenn er eine datei will, bleibt ihm ja nichts anderes übrig oder?
Was würdest du vorschlagen ohne DB oder ähnliches???
Es geht nicht um's Auslagern. Es geht darum, dass man's nicht zum Abspeichern benutzen sollte. Wenn Du die Objekte während der Laufzeit eines Programmes auslagern möchtest, weil Du sie gerade nicht benötigst, von mir aus. Wenn Du sie aber abspeichern willst, um sie Tage, Wochen, Jahre später zu laden, dann ist Serialisierung nicht das richtige Mittel. Du nimmst ein paar Erweiterungen an Deinen Klassen vor und plötzlich fängst Du an, in alle Deine Datenklassen hässliche readObject() oder readResolve() Methoden einzubasteln.
Nicht umsonst steht in allen Swing-Klassen die Standard-Serialisierungswarnung:
Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeansTM has been added to the java.beans package. Please see XMLEncoder.