aus XML-File gelesenes als Methodenaufruf verwenden

Status
Nicht offen für weitere Antworten.

willi

Mitglied
hallo!

"java-forum.org
Die Java-Community, in der einem garantiert geholfen wird."

-> da bin ich jetzt aber mal gespannt :)


nun zu meinem problem:

mein vorhaben ist es, ein panel dynamisch mit controls zu füllen. die beschreibung dazu leg ich in einer xml-datei ab (z.b. typ=jlabel, caption=bla...). es gibt nur eine begrenzte anzahl an controls, also noch nicht so wild.
sämtliche methoden (get/set) existieren schon (es geht hier um ejbs mit einer datenbank -> getter und setter werden automatisch erzeugt!)
der knackpunkt (für mich) liegt jetzt darin, dass ich diese methoden nur noch z.b. beim speichern aufrufen müsste.
ich könnte in die xml zu meinem control die entpsrechende klasse mit der gewünschten methode schreiben. die sind vorher bekannt.

vielleicht hat ja jemand nen spontanen tip. oder nen komplett anderen ansatz...

auf jeden fall besten dank schon mal fürs durchlesen :)
 
B

Beni

Gast
Reflection könnte was für dich sein:

So kann man z.B. die Hintergrundfarbe eines Panels ändern, ohne im Code je eine Panel-Variable zu benutzen:
Code:
Class panelClass = Class.forName( "javax.swing.JPanel");
Methode set = panelClass.getMethod( "setBackground", new Class[]{ Color.class });

Object instance = panelClass.instance();
set.invoke( instance, Color.RED );
(Du bemerkst sicher: hier wird mit Strings gearbeitet, und da eine XML-Datei eine Textdatei ist, die Strings enthält...)

Mehr darüber in der API, unter "java.lang.Class".
 

willi

Mitglied
gigantisch! des ging ja echt flott!

gibt es aber ne alternative zu reflections? ich find die irgendwie so "von hinten durch die brust ins auge".

bestan dank nochmal!

willi
 

Bleiglanz

Gesperrter Benutzer
so wie du das beschrieben hast gehts tatsächlich nur mit Reflection (weil die Namen der Methoden nur in der XML Datei stehen - theoretisch könnte man ja javac aufrufen -> das xml file ändern -> programm aufrufen)

Alternative: kleines tool (oder gleich xslt) um aus deiner xml-datei passenden source-code zu erzeugen und diesen dann per Strategy-Pattern in das Panel zu integrieren

Aber wie gesagt: wenn du willst, dass man das XML-File verändern kann nachdem der Compiler drübergelaufen ist (oder auch zur Laufzeit...); dann bleibt dir nur Reflection
 

willi

Mitglied
"Alternative: kleines tool (oder gleich xslt) um aus deiner xml-datei passenden source-code zu erzeugen und diesen dann per Strategy-Pattern in das Panel zu integrieren"

klingt toll! leider versteh ich da nur bahnhof! hättest du lust auf ein kurzes code-beispiel?

besten dank im voraus!
 

Bleiglanz

Gesperrter Benutzer
Code:
<xsl:for-each select="./panel">
public cass Panel<xsl:value-of select="@name"/>Handler{ 
// irgendein code, der sich aus den xmldaten erzeugen lässt...
}
</xsl:for-each>
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E JAXB und java.nio.file.Path XML & JSON 4
Trèfle Formatierung v. JSON File XML & JSON 7
L login - Java IOException jaas.config File or Directory not present XML & JSON 1
G Probleme mit Jsoup in .jar File XML & JSON 11
K JAR-File mit XML-Datei XML & JSON 1
JBoby Yaml File lesen und in Objekte umwandel (SnakeYAML / YamlBeans) XML & JSON 0
O XML Zugriff auf Entity File XML & JSON 0
B xsd-Datei ins jar file XML & JSON 5
S XLSX-File NoSuchMethodError XML & JSON 7
M SEPA XML file XML & JSON 11
S Xml File für den Aufbau einer anderen Xml Datei XML & JSON 6
S XML file lässt sich in Eclipse nicht erstellen XML & JSON 2
M <root> node in bestehendes XML-File XML & JSON 8
jstei001 .xsd File wärend der Laufzeit einlesen und XMl rausschreiben XML & JSON 5
L Datenstruktur in XML-File schreiben XML & JSON 2
Q XML-File als Objekt in Java XML & JSON 6
G DXF-File schreiben XML & JSON 17
GUI-Programmer java.io.File aus .jar beziehen XML & JSON 6
B XML file erstellen und in lesbarer form speichern XML & JSON 2
M XML File generieren XML & JSON 3
S Aus XML-File eine Baumstruktur erzeugen XML & JSON 5
N XML File aus Internet korrekt mit absätzen formatiert abspeichern XML & JSON 10
J xmlParser/-Writer: DTD in seperates File auslagern XML & JSON 4
C Xml file gegen eine DTD validieren XML & JSON 3
G Problem beim schreiben von XML in eine File XML & JSON 2
S Premature end of file XML & JSON 7
T File öffnen XML & JSON 6
B XML file für schtasks XML & JSON 5
G Simples XML File einlesen mit JDom. Prefix not bound ? XML & JSON 2
G Xml File schematisch auslesen XML & JSON 2
J File objekt in xml speichern? XML & JSON 12
G XMLEncoder: discarding statement LinkedList.add(File) XML & JSON 16
X XML File auslesen/parsen u. in ne Hashmap speichern XML & JSON 2
M Unhierarchisches XML-File mit DOM-Parser auswerten XML & JSON 5
M XML File während Applet-Start auslesen? XML & JSON 10
X Einzelne Tags rausnehmen aus einem großen XML-file XML & JSON 4
E XOM setzen von XML-Schema declaration beim erzeugen XML-File XML & JSON 2
M XSL-File für Transformation verwenden XML & JSON 3
M XML-File verabeiten XML & JSON 19
A XML-File auslesen, alles leer? XML & JSON 2
S Geändertes XML-File wieder abspeichern. XML & JSON 10
D XML-file mit Eclipse erstellen + Namespaces XML & JSON 2
A html-File nach txt-File konvertieren XML & JSON 15
K XML to file geht nicht :( XML & JSON 4
A Internetinhalte auslesen und in einem XML-File speichern XML & JSON 4
T select-statement aus mysql in ein xml-file umwandeln XML & JSON 3
J XML File updaten XML & JSON 2
A XML-file an der Konsole ausgeben XML & JSON 4
D In ein XML File meinStyleSheet.css eintragen? XML & JSON 9
J Client für WebService programmieren (aus WSDL-File) XML & JSON 15
R wie kann ich ein xml file in einen string einlesen? XML & JSON 2
M *.group() in File auslesen XML & JSON 4
A XML-File ausgeben XML & JSON 2
T Elemente aus XML-File löschen (JDom) XML & JSON 9
T [JDOM] XML File, neue Daten hinzufügen XML & JSON 5
D Aus Java XML-File an PHP-Skript senden: Encodingproblem? XML & JSON 3
T Prob: Auslesen XML File mit JDOM XML & JSON 2
B DOM oder HTML File drucken "wie ein Browser es zeigen w XML & JSON 3

Ähnliche Java Themen

Neue Themen


Oben