Jtree + Attribute

Status
Nicht offen für weitere Antworten.

raffnix

Bekanntes Mitglied
Hallo ich lese folgende xml in einen Jtree ein:
Code:
  <?xml version="1.0" encoding="UTF-8" ?> 
- <ANNOTATION>
- <SELECTION Name="gesture" DEFAULT="none">
  <ELEMENT>none</ELEMENT> 
  <ELEMENT>open</ELEMENT> 
  <ELEMENT>closed</ELEMENT> 
  <ELEMENT>fist</ELEMENT> 
  <ELEMENT>L</ELEMENT> 
  <ELEMENT>Victory</ELEMENT> 
  </SELECTION>
- <SLECTION NAME="side" DEFAULT="none">
  <ELEMENT>none</ELEMENT> 
  <ELEMENT>right hand</ELEMENT> 
  <ELEMENT>left Hand</ELEMENT> 
  </SLECTION>
- <SELECTION NAME="view" DEFAULT="none">
  <ELEMENT>none</ELEMENT> 
  <ELEMENT>palm</ELEMENT> 
  <ELEMENT>back</ELEMENT> 
  <ELEMENT>side</ELEMENT> 
  </SELECTION>
  </ANNOTATION>

der code zum einlesen:
Code:
import java.awt.*;
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.event.*;
import java.util.Iterator;
import java.util.List;
import org.jdom.*;
import org.jdom.input.SAXBuilder;
import java.io.File;


public class XMLTreeViewer extends JFrame{
	private JTree baum;
	private Document xmlDoc;
	DefaultMutableTreeNode treenode;
	public XMLTreeViewer(Document doc){
		 super();
		 this.xmlDoc = doc;
		 setSize(600, 450);
         treenode = new DefaultMutableTreeNode("Annotation");
		 initialize();
	}

	private void initialize(){

		baum = new JTree();
		getContentPane().add(new JScrollPane(baum), BorderLayout.CENTER);
        processElement(xmlDoc.getRootElement(), treenode);
		((DefaultTreeModel)baum.getModel()).setRoot(treenode);
		addWindowListener(new java.awt.event.WindowAdapter(){
			      public void windowClosing(java.awt.event.WindowEvent e){					 
					  baum = null;
					  treenode = null;
				  }
			} );

		setVisible(true);
	}


	 private void processElement(Element elem, DefaultMutableTreeNode dmtn) {
		 
		 String text = elem.getTextNormalize();
		 DefaultMutableTreeNode currentNode =
		 	new DefaultMutableTreeNode(text);			
		 processAttributes(elem, currentNode);
		 Iterator children = elem.getChildren().iterator();
		 while(children.hasNext())
		 	processElement((Element)children.next(), currentNode);
		 dmtn.add(currentNode);
	 }

	public void processAttributes(Element elem, DefaultMutableTreeNode dmtn) {
		 Iterator atts = elem.getAttributes().iterator();

		 while(atts.hasNext()){
			 Attribute att = (Attribute) atts.next();
			 DefaultMutableTreeNode attNode =
			 	new DefaultMutableTreeNode(att.getValue());
			
		 }
	 }

	public static void main(String args[])
		throws Exception
	{
		SAXBuilder builder = new SAXBuilder();
		Document doc = builder.build(new File("Annotation.xml"));
		XMLTreeViewer viewer = new XMLTreeViewer(doc);
		viewer.addWindowListener(new java.awt.event.WindowAdapter(){
			      public void windowClosing(java.awt.event.WindowEvent e){
				  	System.exit(0);
				  }
			} );
	}
}

soweit klappt das ganz gut. bis auf einen punkt.
ich möchte die Knoten im Jtree mit dem entsprechenden Name Attribute benamsen.(z.b gesture).
ist das möglich?
 

Azmodan

Mitglied
Sicher mach deine eigene Klasse MyTreeNode und leite sie von DefaultMutableTreeNode ab. Dann überschreibst du die toString() Funktion und gibst dein Attribute zurück. Fertig!

Oops schon ein bißchen spät. Sorry.
 

dan-ger

Neues Mitglied
Hallo,

ich probiere seit letzter Nacht folgendes:

Ich habe mir aus meiner XML Datei -->

(Auszug ...)
Code:
<?xml version="1.0"?>
<Geometrie>
<Wuerfel>
<Wuerfel_1 Description="Groesse: 5x5cm - Farbe: Rot"></Wuerfel_1>
<Wuerfel_2 Description="Groesse: 7x7cm - Farbe: Blau"></Wuerfel_2>
</Wuerfel>
</Geometrie>


einen JTree anzeigen lassen. So weit so gut. Ich lasse mir den Baum auch nur bis Wuerfel_01. bzw Wuerfel_02 ausgeben. Die Ausgabe des Baumes sieht also wie folgt aus:

Code:
Geometrie (Ordner)
+ Wuerfel (Ordner)
- Wuerfel_01 (Blatt)
- Wuerfel_02 (Blatt)

Was ich jetzt gern haben möchte, ist das wenn der User in dem Baum auf Wuerfel_01 klickt, also auf das Blatt, mir die Description dieses Tags (also das Attribut) auf einem JLabel oder der gleichen ausgegeben wird.
Kan mir jemand in diesem Fall weiter helfen!? Ich bekomme das einfach hin.

Die Theorie verstehe ich soweit, nur ich bekomm es nicht umgesetzt *argh*.


Gruß
 
S

SlaterB

Gast
geht's noch um XML oder allein um die Event-Verarbeitung?

ich behaupte mal das sind zwei völlig getrennte Bereiche, die nix in einem Thread zu suchen haben,
Daten aus XML holen ist unabhängig von der Art der weiteren Verarbeitung..,

so und was hast du nun an der Theorie schon verstanden?
oder ist das ein leerer Satz für 'keine Ahnung'? ;)

wie man JTrees benutzt, steht z.B. hier,
http://java.sun.com/docs/books/tutorial/uiswing/components/tree.html

auch mit Beispiel-Code, in dem auf Anklicken reagiert wird,
TreeSelectionListener
 
G

Gast

Gast
Hallo,
eine kleine frage, warum geht das Programm nicht in die while schleife!? habe ausgaben gemacht wie ihr sehen könnt..schleifen anfang und ende..und daszwischen sollte auch noch eines ausagbe kommen, tuts aber nicht! wieso?
Code:
SAXBuilder sb = new SAXBuilder();
        doc = sb.build( "gesamt.xml" ); 
        Element used = doc.getRootElement(); 
        //Element link = used.getChild("link");
        List link = used.getChildren("link");
        Iterator linkIterator = link.iterator();
        System.out.println("......schleifen beginn");
            while (linkIterator.hasNext()){
            String id = used.getChild("id").getText();
            System.out.println("id: " + used.getChild("id").getText());
    }
        
        System.out.println("......schleifen ende");
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Knoten-Attribute einer xsd-Datei in einem JTree auslesen XML & JSON 18
P JTree aus XML XML & JSON 2
T XML JTree änder sich nicht XML & JSON 2
F XML erzeugen aus JTree und wieder einlesen... XML & JSON 6
M XML in Jtree bearbeiten XML & JSON 2
G Probleme mit XML und JTree XML & JSON 9
F JTree zu XML XML & JSON 2
S JTree - Nur Elemente mit Attributen einfügen XML & JSON 2
D JTree aus XML Datei erstellen & JTree wieder in XML spei XML & JSON 4
J XML-Dokument / JTree XML & JSON 7
R xml mit Jdom lesen und als Jtree anzeigen. XML & JSON 9
Z Erzeugung einer Referenz von Knoten in JTree auf DOMTree XML & JSON 3
J xml in jtree: kleine Hilfe nötig XML & JSON 3
A JTree Struktur aus XML (mit Attributen) XML & JSON 12
D Xml-Datei in JTree anzeigen und Elemente ausblenden XML & JSON 2
iman XML Attribute mit JAVA einlesen mit Spring Batch XML & JSON 0
L Transformer verschluckt Attribute bei der Ausgabe XML & JSON 3
W XML einlesen und Attribute auslesen XML & JSON 1
D Attribute aus XML Auslesen XML & JSON 5
P Xpath zugriff auf Attribute XML & JSON 3
R cvc-complex-type.3.2.2: Attribute 'uuid' is not allowed to appear in element 'jasperReport'. XML & JSON 4
C JAXB: XML-Elemente einlesen und als XML-Attribute ausgeben XML & JSON 7
F EMF, XSD to ECore mapping, Attribute vs. Element XML & JSON 2
A XML-Attribute vergleichen XML & JSON 4
Helgon MalformedByteSequenceException und null JDOM Attribute XML & JSON 5
G JAXB XML-Attribute feststellen XML & JSON 4
2 wie komme ich an die Attribute XML & JSON 3
S Attribute von Elementen auslesen mit XPath XML & JSON 2
B 2 Attribute in einer xsl XML & JSON 2
M Gegenseitig ausschließende Attribute definieren in XSD XML & JSON 7
C DOM: Attribute nicht in alphabetischer Reihenfolge schreiben XML & JSON 3
eQuest XML Jaxen Attribute auslesen XML & JSON 2
C Mit SAX Parser XML Attribute auswerten XML & JSON 3
H XML Attribute auslesen XML & JSON 5
S JAXB und viele verschachtelte Attribute XML & JSON 1
G xquery - nodes unterscheiden sich nur durch attribute :-( XML & JSON 4
L Objekt Serialisierung: Schreiben aller Attribute erzwingen XML & JSON 5
E EMF Modell um alle möglichen Attribute auszulesen XML & JSON 12
S XSD: restriction und attribute gleichzeitig XML & JSON 4
V XMLEncoder: Attribute nicht serialisieren XML & JSON 2
D Wie kann ich Namespace Attribute in den Elementen entfernen? XML & JSON 2
M Attribute parsen XML & JSON 6
D JDOM erzeugt leere xmlns Attribute XML & JSON 4
B jdom outputter ohne attribute XML & JSON 2
G Wie Attribute aus XML in ein Model schreiben (StAX)? XML & JSON 7
M attribute funken nicht XML & JSON 3
Z DOM: Attribute in Knoten schreiben XML & JSON 2

Ähnliche Java Themen

Neue Themen


Oben