Hi Leute!
Ich bin neu hier im Forum. Der Grund ist, dass mich seit längerer Zeit eine Frage wurmt, die ich durch reines Surfen im Netz nicht klären konnte. Hab schon einen längeren weg hinter mir.
Zunächst möchte ich meine Problematik erklären:
Ich schreibe im Moment an einem VokabelTrainer. an Oberster stelle steht bei diesem natürlich das Vokabel-Objekt. Dieses wird in ArrayList<Vokabel> organisiert, um sie abzuspeichern.
Natürlich soll sich der Anwender selbst Vokabellisten erzeugen können. Diese stelle ich in der GUI in einer Tabelle dar.
Folgendes ist bereits passiert: Standardgemäß lassen sich in Tabellen nur normale Arrays[] speichern. Damit die VokListe aber erweiterbar ist, muss es natürlich eine ArrayList sein.
Also trage ich die Daten in die Tabelle ein indem ich die Methode setValueAt() vom DefaultTableModel verwende. Das funzt auch alles. Das Problem ist der Rückweg. Wenn eine Vokabel eingetragen ist, möchte man ja vielleicht einen Wert nachträglich bearbeiten. Also klickt man in die Tabelle und ändert das Wort.
Um den Wert dann wieder zurück ans Array zu liefern, habe ich einen TableModelListener (ChangedListener) initialisiert. Dieser überträgt dann den Wert an der "Veränderungsstelle" in das Array ein und ersetz so den alten Wert alles ist super. Fuzt auch.
ABER:
wenn ich die liste leere oder neue Vokabeln hinzufüge, wird der ChangedListener ebenfalls aktiviert.
Da beim Löschen oder verändern aber nichts an einer bestimmten stelle verändert wird (oder was weiß ich warum) stürzt das programm ab.
MEINE FRAGE ALSO
Ist es möglich einen anderen Listener zu implementieren, der nur dann anspringt, wenn von dem TableModel nur EINE Zelle verändert wird, oder wenn in ihr ENTER gedrückt wird oder sonstwie?
;(;(;(
Danke für eure Hilfe im Voraus
Ich bin neu hier im Forum. Der Grund ist, dass mich seit längerer Zeit eine Frage wurmt, die ich durch reines Surfen im Netz nicht klären konnte. Hab schon einen längeren weg hinter mir.
Zunächst möchte ich meine Problematik erklären:
Ich schreibe im Moment an einem VokabelTrainer. an Oberster stelle steht bei diesem natürlich das Vokabel-Objekt. Dieses wird in ArrayList<Vokabel> organisiert, um sie abzuspeichern.
Natürlich soll sich der Anwender selbst Vokabellisten erzeugen können. Diese stelle ich in der GUI in einer Tabelle dar.
Folgendes ist bereits passiert: Standardgemäß lassen sich in Tabellen nur normale Arrays[] speichern. Damit die VokListe aber erweiterbar ist, muss es natürlich eine ArrayList sein.
Also trage ich die Daten in die Tabelle ein indem ich die Methode setValueAt() vom DefaultTableModel verwende. Das funzt auch alles. Das Problem ist der Rückweg. Wenn eine Vokabel eingetragen ist, möchte man ja vielleicht einen Wert nachträglich bearbeiten. Also klickt man in die Tabelle und ändert das Wort.
Um den Wert dann wieder zurück ans Array zu liefern, habe ich einen TableModelListener (ChangedListener) initialisiert. Dieser überträgt dann den Wert an der "Veränderungsstelle" in das Array ein und ersetz so den alten Wert alles ist super. Fuzt auch.
ABER:
wenn ich die liste leere oder neue Vokabeln hinzufüge, wird der ChangedListener ebenfalls aktiviert.
Da beim Löschen oder verändern aber nichts an einer bestimmten stelle verändert wird (oder was weiß ich warum) stürzt das programm ab.
MEINE FRAGE ALSO
Ist es möglich einen anderen Listener zu implementieren, der nur dann anspringt, wenn von dem TableModel nur EINE Zelle verändert wird, oder wenn in ihr ENTER gedrückt wird oder sonstwie?
;(;(;(
Danke für eure Hilfe im Voraus