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 + -
显示快捷键?