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?
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);
}
}