UPDATE:它不一定要使用静态文件。是否正在使用全局变量字符串,并且如果长度可能发生变化,则正在监听?Java Swing:如何立即将对xml文件所做的更改反映到可视化树中?
我想做什么:基本上,我试图表示在其他Jpanel上呈现的xml文档的可视化树表示形式。当我在这个渲染的xml文档上选择节点时,我想将该xml节点添加到可视化树上。所以基本上,渲染的组件和可视化树组件共享相同的xml文件/变量。
技术问题(我打开备用建议):
我必须通过使用org.apache.xerces.parsers.SAXParser以下方法生成的可视化树。
它读取一个xml文件并返回要在屏幕上呈现的scrollPane组件。
我需要能够添加或删除节点并进行编辑。所以当我点击一个按钮时,它会将一个节点添加到可视化树中。不过,我认为当xml文件更新后,需要有一些事件监听器来快速绘制树。这可能是低效的(?),因为每次发生xml文件更改事件时都需要重新绘制树?
private static Component createTree() {
DefaultMutableTreeNode top = new DefaultMutableTreeNode("test"));
SAXTreeBuilder saxTree = new SAXTreeBuilder(top);
try {
SAXParser saxParser = new SAXParser();
saxParser.setContentHandler(saxTree);
saxParser.parse(new InputSource(new FileInputStream("test1.xml")));
}catch(Exception ex){
ex.printStackTrace();
top.add(new DefaultMutableTreeNode(ex.getMessage()));
}
JTree tree = new JTree(saxTree.getTree());
JScrollPane scrollPane = new JScrollPane(tree);
return scrollPane;
}