xmleditor.java

来自「动画素材图像语义标注系统:该系统实现对图片的语义标注」· Java 代码 · 共 82 行

JAVA
82
字号
package cn.dxm.util;

import java.awt.GridLayout;
import java.beans.ExceptionListener;
import java.beans.XMLDecoder;
import java.beans.XMLEncoder;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;

import javax.swing.JPanel;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeSelectionModel;




public class XMLEditor implements ExceptionListener{
	
	
	
	public void saveJTreeToXml(String xmlfname,DefaultMutableTreeNode rootnode){
		try {
			//XML编码器
			XMLEncoder xe = new XMLEncoder(new BufferedOutputStream(
					new FileOutputStream(xmlfname)));
			xe.setExceptionListener(this);
			xe.writeObject(rootnode);
			xe.flush();
			xe.close();
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}
	
	
	
	public void loadXmlToJTree(JTree tree,DefaultTreeModel treeModel,JPanel treepanel,String xmlfname,DefaultMutableTreeNode rootnode){
		try {
			
			
			
			//rootnode.removeAllChildren();
			//treeModel.reload();
			
			//XML解码器.
			XMLDecoder xe = new XMLDecoder(new FileInputStream(xmlfname));
			//DynamicTreeDemo.this)指DynamicTreeDemo本身对像.
			xe.setExceptionListener(this);
			rootnode = (DefaultMutableTreeNode) xe.readObject();
			xe.close();
			this.reload(treeModel,rootnode,tree,treepanel);
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}
	
	
	public void reload(DefaultTreeModel treeModel,DefaultMutableTreeNode rootNode,JTree tree,JPanel panel){
		treeModel = new DefaultTreeModel(rootNode);
		treeModel.addTreeModelListener(new MyTreeModelListener());

		 tree = new JTree(treeModel);
		tree.setEditable(true);
		tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
		tree.setShowsRootHandles(true);
		panel.removeAll();
		panel.invalidate();
		panel.repaint();
		panel.validate();
	}


	public void exceptionThrown(Exception e) {
		e.printStackTrace();
		
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?