【Java开源代码栏目提醒】:本文主要为网学会员提供XTreeMain.java,希望对需要XTreeMain.java网友有所帮助,学习一下!
package ch6.xml;
import javax.xml.parsers.*; // GUI类
import javax.swing.*;
import java.awt.*;
import java.awt.event.*; //file://标准
Java类
import java.io.*;
public class XTreeMain extends JFrame {
// XTree对象,用来在JTree中显示XML
private XTree xTree;
// JScrollPane是JTree的容器
private JScrollPane jScroll;
private WindowListener winClosing;
// 设置框架的宽和高
private static final int FRAME_WIDTH = 400;
private static final int FRAME_HEIGHT = 300;
/*
* 构造器构造一个框架包含JScrollPane, 把一个基于XML字符串的XTree对象传到构造函数中
*/
public XTreeMain(String title, String xml)
throws ParserConfigurationException {
super(title);
Toolkit toolkit;
Dimension dim, minimumSize;
int screenHeight, screenWidth;
// 初始化基本的布局属性
setBackground(Color.lightGray);
getContentPane().setLayout(new BorderLayout());
toolkit = Toolkit.getDefaultToolkit();
dim = toolkit.getScreenSize();
screenHeight = dim.height;
screenWidth = dim.width;
setBounds((screenWidth - FRAME_WIDTH) / 2,
(screenHeight - FRAME_HEIGHT) / 2, FRAME_WIDTH, FRAME_HEIGHT);
// 构建XTree对象
xTree = new XTree(xml);
// file://把XTree封装到JScroll中,以便在JFrame可以使它在屏幕中上下滚动.
jScroll = new JScrollPane();
jScroll.getViewport().add(xTree);
// 添加滚动条到框架中
getContentPane().add(jScroll, BorderLayout.CENTER);
validate();
setVisible(true);
// 添加WindowListener用来关闭窗口
winClosing = new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
};
addWindowListener(winClosing);
}
// 程序从这里开始执行。必须把一个以xml为扩展名的XML文件传送到这个方法中,其格式为java XTreeTester
// yourxmlfilename.xml
public static void main(String[] argv) {
if (argv.length == 0) {
System.out.println("用法: java
程序应用");
System.out.println(" 输入Java程序的文件地址和所要解析的XML文档.");
System.out.println(" 例如: java XmlDemoone XmlDemoon.
xml");
argv = new String[1];
argv[0] = "src\\ch6\\xml\\XmlDemoone.xml";
}
String fileName = argv[0];
BufferedReader reader;
String line;
StringBuffer xmlText;
XTreeMain xTreeTester;
// 创建一个基于特定XML文件的
文档对象
try {
if (fileName.substring(fileName.indexOf('.')).equals(".xml")) {
reader = new BufferedReader(new FileReader(fileName));
xmlText = new StringBuffer();
while ((line = reader.readLine()) != null) {
xmlText.append(line);
}
// 分析完
文档对象后将重写文件
reader.close();
// 构造 GUI 组件
xTreeTester = new XTreeMain("XML编辑器", xmlText.toString());
}
} catch (FileNotFoundException fnfEx) {
System.out.println("没有发现" + fileName + "文件。");
} catch (Exception ex) {
ex.printStackTrace();
}
}
}