Swing Komponenten Dynamisch Erstellen

superwitti

Grünschnabel
Ich soll eine Anwendung schreiben, über die Metadaten eingegeben werden sollen. Das ganze sieht so aus, das über verschiedene Textfelder Informationen eingegeben werden, die in einem nächsten Schritt in einer XML Datei gespeichert werden. Z.B. soll der Name des Erstellers eingegeben werden. Dieser wird hinterher in dem Element <Ersteller>Name desErstellers</Ersteller> gespeichert.

Die Anwendung soll leicht an neue Gegebenheiten angepasst werden. D.h. neue Elemente sollen hinzugefügt werden, ohne dass man den Code ändert. Meine Idee war jetzt eine XML Datei festzulegen, in der ich jeweils den Namen und die Art der Komponente reinschreibe. Die Eingabemaske soll dann dementsprechend erzeugt werden.
Ist so etwas möglich? Ist mein Ansatz soweit richtig? Ich bin Programmierneuling mit wenig Praxis, daher bin ich etwas unsicher. Derzeit benutze ich den VisualEditor unter Eclipse.
 
Prinzipiell ist das möglich nur mit dem VisualEditor wirst du da nicht weiterkommen, dann mußt du schon die Oberfläche selbst programmieren.

Code:
<gui>
    <guiElement label="Adresse" type="JTextField"/>
    <guiElement label="Ort" type="JTextField"/>
</gui>

Du würdest dann die XML-Datei die so irgendwie aussieht auslesen, dann über die Einträge iterieren und dementsprechend dann die Textfelder und Labels in der Schleife erstellen.
 
Prinzipiell ist das möglich nur mit dem VisualEditor wirst du da nicht weiterkommen, dann mußt du schon die Oberfläche selbst programmieren.

Code:
<gui>
    <guiElement label="Adresse" type="JTextField"/>
    <guiElement label="Ort" type="JTextField"/>
</gui>

Du würdest dann die XML-Datei die so irgendwie aussieht auslesen, dann über die Einträge iterieren und dementsprechend dann die Textfelder und Labels in der Schleife erstellen.

So in etwa hatte ich es mir vorgestellt. Klappt das denn auch für jedes Feld einen ActionListener zu erzeugen? Die Funktionen sind ja sehr ähnlich: Bei Feldeingabe Feld auslesen und unter dem Namen des Elementes in ein neues XML Document einfügen.

Ist das Problem beim VisualEditor, dass der für jede Komponente eine Methode erzeugt und man keine Methoden zur Laufzeit erzeugen kann?

Schon mal vielen Dank
 
Ja die Listener kannst du entsprechend hinzufügen.

Mit dem VisualEditor wirst du nicht weiter kommen, weil dieser ein GUI-Designer ist, der dir eine feste Oberfläche erstellt und dazu nichts von XML einliest oder ähnliches.

Mußt du mal schauen wie das mit den Links ist von Sascha, ob du das so verwenden kannst oder ob das zu viel Aufwand bedeuten würde.
 
Ja die Listener kannst du entsprechend hinzufügen.

Mit dem VisualEditor wirst du nicht weiter kommen, weil dieser ein GUI-Designer ist, der dir eine feste Oberfläche erstellt und dazu nichts von XML einliest oder ähnliches.

Mußt du mal schauen wie das mit den Links ist von Sascha, ob du das so verwenden kannst oder ob das zu viel Aufwand bedeuten würde.

Soweit ich das überblicken konnte, ist das schon sehr umfangreich. Meine GUI soll einfach nur eine Untereinanderreihung von TextAreas mit entsprechender Beschriftung sein. Also sehr einfach gehalten und eher unspektakulär.
 
Es hat jetzt alles geklappt. Mein Problem war, dass ich mit dem VisualEditor gearbeitet habe. Damit bin ich nicht so zurecht gekommen. Vielen Dank für die Hilfe
 
Zurück