Hi,
jedes Objekt hat ja eine Object.toString() Methode. Diese Methode gibt ja die Eigenschaften des Objekts aus.
Ich poste mal ein Beispiel von einem JLabel:
Leider eine etwas breite Zeile. Naja...
Nun wollte ich mit RegEx (und ja, mit RegEx habe ich noch nicht so große Erfahrungen gesammelt) den String auseinander nehmen und die Werte in einer Tabelle packen.
Mehr oder weniger klappt das ganze auch schon, jedoch habe ich Probleme mit z.B. dem
Dort bekommt ich immer einer Zeile in der Tabelle,
und dann noch diese beiden
Ich möchte das aber eigentlich lieber in einem ähnlichen Format wie hier haben:
Jedoch müsste ich dann ja jede Menge abfragen machen und einiges ausschliessen etc.
Das sollte aber mit einem einzigen RegEx doch wohl möglich sein oder?
Hier ist erstmal mein Pattern:
Meine Verwendung des ganzen läuft folgendermaßen ab:
Dann habe ich alle Werte in einem Vector.
Mit diesem Vector fülle ich dann die Tabelle.
Jedoch ist das recht blöd, dass ich für z.B. die minimumSize 3 Zeilen habe, einmal halt die Klasse von Dimension, dann 1 Zeile hoehe und 1 zeile Breite.
Wie kann ich es am besten hinbekommen, dass ich diese 3 Werte in einer Zeile stehen habe?
Möglichst sollte nur das Pattern verändert werden (hoffe, dass das so einfach geht).
Ich habe es schon mit negieren von [ vor dem Anfang versucht, aber irgendwie will das ganze nicht so, wie es soll.
Danke für die Antworten schonmal!
Mfg, Matflasch
jedes Objekt hat ja eine Object.toString() Methode. Diese Methode gibt ja die Eigenschaften des Objekts aus.
Ich poste mal ein Beispiel von einem JLabel:
Code:
javax.swing.JLabel[lblName,6,5,200x15,alignmentX=0.0,alignmentY=null,border=,flags=0,
maximumSize=java.awt.Dimension[width=200,height=15],minimumSize=java.awt.Dimension[width=200,height=15]
,preferredSize=java.awt.Dimension[width=200,height=15],defaultIcon=,disabledIcon=,
horizontalAlignment=LEADING,horizontalTextPosition=TRAILING,iconTextGap=4,labelFor=,text=Name
verticalAlignment=CENTER,verticalTextPosition=CENTER]
Nun wollte ich mit RegEx (und ja, mit RegEx habe ich noch nicht so große Erfahrungen gesammelt) den String auseinander nehmen und die Werte in einer Tabelle packen.
Mehr oder weniger klappt das ganze auch schon, jedoch habe ich Probleme mit z.B. dem
Code:
maximumSize=java.awt.Dimension[width=200,height=15]
Code:
maximumSize=java.awt.Dimension
Code:
width=200
height=15
Ich möchte das aber eigentlich lieber in einem ähnlichen Format wie hier haben:
Code:
maximumSize=java.awt.Dimension(width=200,height=15)
Jedoch müsste ich dann ja jede Menge abfragen machen und einiges ausschliessen etc.
Das sollte aber mit einem einzigen RegEx doch wohl möglich sein oder?
Hier ist erstmal mein Pattern:
Code:
"([\\w]+=[\\w\\säöü.:\\/%\\-$ ]+)|([\\w]+=)"
Meine Verwendung des ganzen läuft folgendermaßen ab:
Code:
String t_strToStringSource = object.toString();
String t_strPattern = "([\\w]+=[\\w\\säöü.:\\/%\\-$ ]+)|([\\w]+=)";
Pattern t_Pattern = Pattern.compile(t_strPattern);
t_Matcher = t_Pattern.matcher(t_strToStringSource);
Vector t_vecProperty = new Vector();
while (t_Matcher.find()) {
t_vecProperty.addElement(t_strToStringSource.substring(
t_Matcher.start(), t_Matcher.end()));
}
Dann habe ich alle Werte in einem Vector.
Mit diesem Vector fülle ich dann die Tabelle.
Jedoch ist das recht blöd, dass ich für z.B. die minimumSize 3 Zeilen habe, einmal halt die Klasse von Dimension, dann 1 Zeile hoehe und 1 zeile Breite.
Wie kann ich es am besten hinbekommen, dass ich diese 3 Werte in einer Zeile stehen habe?
Möglichst sollte nur das Pattern verändert werden (hoffe, dass das so einfach geht).
Ich habe es schon mit negieren von [ vor dem Anfang versucht, aber irgendwie will das ganze nicht so, wie es soll.
Danke für die Antworten schonmal!
Mfg, Matflasch