XML JTree änder sich nicht

TJava

Bekanntes Mitglied
Also beim ersten ändern hat es geklappt, der JTree hat sich verändert.
Jetzt allerdings nicht mehr. Es gibt auch keine Fehlermeldung wenn die Datei nicht da ist.
Kann mir das jemand erklären wird es irgendwo zwischengespeichert?


Java:
package view;

import java.awt.BorderLayout;
import java.io.IOException;
import java.util.Arrays;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class JXMLTree extends JFrame {

	private JTree tree;
	private JScrollPane scrollPane;

	public JXMLTree() {
		super("JXMLTreeTest");
		setDefaultCloseOperation(EXIT_ON_CLOSE);

		DefaultMutableTreeNode root = initTreeRoot("Hier steht die test.xml");
		tree = new JTree(root);
		scrollPane = new JScrollPane(tree);
		getContentPane().add(scrollPane, BorderLayout.CENTER);

		pack();
		setVisible(true);
	}

	private DefaultMutableTreeNode initTreeRoot(String file) {

		Document doc1 = null;
		try {
			DocumentBuilderFactory factory = DocumentBuilderFactory
					.newInstance();
			DocumentBuilder builder = factory.newDocumentBuilder();
			doc1 = builder.parse(this.getClass().getResourceAsStream(file));
		} catch (ParserConfigurationException e) {
			e.printStackTrace();
		} catch (SAXException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		if (doc1 == null)
			return new DefaultMutableTreeNode("EMPTY");

		Node rootNode = doc1.getFirstChild();
		DefaultMutableTreeNode root = new DefaultMutableTreeNode(rootNode
				.getNodeName());
		treeWalk(rootNode, 0, root);

		return root;
	}

	public static void treeWalk(Node node, int level,
			DefaultMutableTreeNode parentNode) {

		String nodeName = node.getNodeName();
		DefaultMutableTreeNode childNode = null;

		if (node.hasChildNodes()) {
			level++;
			System.out.println(repeat(level, ' ').append(nodeName));
			NodeList list = node.getChildNodes();
			int len = list.getLength();
			for (int i = 0; i < len; i++) {
				Node child = list.item(i);
				childNode = new DefaultMutableTreeNode(child.getNodeName());
				parentNode.add(childNode);
				treeWalk(list.item(i), level, childNode);
			}
		} else {
			childNode = new DefaultMutableTreeNode(node.getNodeValue());
			System.out
					.println(repeat(level, ' ').append(node.getTextContent()));
			parentNode.add(childNode);
		}
	}

	public static void main(String[] args) {
		new JXMLTreeTest();
	}

	public final static StringBuffer repeat(int n, char c) {
		char[] cA = new char[n];
		Arrays.fill(cA, c);
		return (StringBuffer) new StringBuffer().insert(0, cA);
	}
}
 

TJava

Bekanntes Mitglied
Hat jemand eine antwort darauf? Die änderung funktioniert wenn ich in eclipse projects --> clean mache.
Aber auch wenn die Datei nicht angegeben wird zeigt er sie an.

Java:
DefaultMutableTreeNode root = initTreeRoot("test.xml");
 
S

SlaterB

Gast
die Datei wird wahrscheinlich vom Verzeichnis der .java-Quelldateien zu den .class-Dateien kopiert, liegen die getrennt vor?

das passiert bei jedem Clean, auch nach Quellcode-Änderungen, aber nicht unbedingt wenn du eine XML-Datei änderst, schon gar nicht wenn außerhalb von Eclipse so dass dieses davon nichts mitbekommt

in professionellen Programmen mit komplizierten Deploy-Vorgang ist das ganz ok so,
im einfachen Falle kannst du überlegen, die Datei unabhängig von den Klassen in einem extra-Verzeichnis abzulegen
und dann
new FileInputStream("/xml/test.xml");
zu verwenden
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P JTree aus XML 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
P Knoten-Attribute einer xsd-Datei in einem JTree auslesen XML & JSON 18
R Jtree + Attribute XML & JSON 6
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
T Mit XPATH finden und dann änder XML & JSON 2
L Lässt sich folgendes so oder so ähnlich mit Java und XML umsetzen XML & JSON 3
S DTD und XML lassen sich nicht verknüpfen XML & JSON 2
S XML file lässt sich in Eclipse nicht erstellen XML & JSON 2
Airwolf89 HTML Datei mit SAXBuilder laden hängt sich auf XML & JSON 4
H Kann sich mal bitte kurz jemand meine XSD anschauen? :-) XML & JSON 7
G xquery - nodes unterscheiden sich nur durch attribute :-( XML & JSON 4
Daniel_L Erfahrungswerte: Welche XML Api eignet sich als Datenformat? XML & JSON 20

Ähnliche Java Themen

Neue Themen


Oben