Formular
myName
- java
1 Slyh
Gibt es, ähnlich wie mit JavaScript, die Möglichkeit mit Java die Elemente eines Panels zu durchlaufen.
Ich habe ein JPanel mit einer unbekannten Anzahl von JLabels und JTextFields, da die Daten aus einer Datenbank genommen werden. Die dargestellten Daten möchte ich dann gerne ändern lassen und wieder in die Datenbank schreiben lassen.
Hat jemand eine Idee wie man das am Geschicktesten angeht? Ich habe versucht eine Collection anzulegen, und jedes neues JLabel oder JTextField mitzuprotokollieren und dann mit Iterator durchzulaufen, allerdings kommt ich dann nicht mehr an die Daten ran.
Bei Google/SUN etc habe ich leider nichts gefunden. Hat hier jemand eine brauchbare Idee?
Hallo,
Gibt es, ähnlich wie mit JavaScript, die Möglichkeit mit Java die Elemente eines Panels zu durchlaufen.
Ja, z.B. über meinPanel.getComponents().
Aber wieso sollte man das wollen, wenn man sich die Komponenten bzw.
die zugrundeliegenden Models/Documents viel bequemer vorher, nämlich
beim Befüllen des Panels, merken kann?
Ich habe ein JPanel mit einer unbekannten Anzahl von JLabels und JTextFields, da die Daten aus einer Datenbank genommen werden.
So unbekannt kann die Anzahl ja gar nicht sein, schließlich könntest
du sie zählen.
Hat jemand eine Idee wie man das am Geschicktesten angeht? Ich habe versucht eine Collection anzulegen, und jedes neues JLabel oder JTextField mitzuprotokollieren und dann mit Iterator durchzulaufen, allerdings kommt ich dann nicht mehr an die Daten ran.
Wieso kommst die nicht mehr an die Daten ran? Welche Daten überhaupt?
Also, ich würde mir wohl die den JTextFields zugrundeliegenden
Document-Objekte merken. Diese Objekte müssen in irgend einer Form
dem ursprünglichen Datensatz zuordenbar sein, so daß du dann eben den
jeweils passenden Datensatz updaten kannst, sofern das Textfeld
geändert wurde.
Wie du das realisierst, liegt an dir. Spontan würde mir eine HashMap
mit der unique ID des Datensatzes als Schlüssel und einem Array aus
Document-Objekten als Wert einfallen. Die Reihenfolge der Elemente
im Array müßte dann halt auf eine bestimmte Spaltennummer bzw. einen
bestimmten Spaltenname abbildbar sein.
Das nur ganz grob beschrieben.
Wenn dir das noch nicht hilft, dann erklär dein eigentliches Problem
mal ein bißchen genauer.
Gruß
Slyh