求助啊~各位大神帮我看看这个程序到底错在哪里啊?
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;
import java.io.*;
import javax.swing.tree.*;
class TNode<T>
{public T nodeValue;
public TNode<T> parent,nextBrother,firstChild;
public TNode(T item){
nodeValue = item;
parent=nextBrother=firstChild=null;}
public TNode( T item , TNode<T> nextBrother , TNode<T> firstChild){
nodeValue = item;
this.parent=null;
this.nextBrother=nextBrother;
this.firstChild=firstChild;
}
}
public class MapJFrame extends JFrame implements ListSelectionListener, WindowListener
{
private DefaultTreeModel treeModel; //树模型
private DefaultMutableTreeNode root; //根结点
private JTable table; //表格组件
private DefaultTableModel tableModel; //默认表格模型
public MapJFrame() //构造图形用户界面
{
super("中国地图");
Dimension dim = getToolkit().getScreenSize(); //获得屏幕分辨率
this.setBounds(dim.width/4,dim.height/4,dim.width/2,dim.height/2); //窗口居中
this.addWindowListener(this); //注册窗口事件监听器
JSplitPane horizontal = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT); //分割窗格,水平分割,左右
horizontal.setDividerLocation(dim.width/6); //设置分隔条的位置
this.getContentPane().add(horizontal);
JSplitPane verical = new JSplitPane(JSplitPane.VERTICAL_SPLIT); //分割窗格,垂直分割,上下
verical.setDividerLocation(dim.height/3); //设置分隔条的位置,水平中间分割
this.tree.addTreeSelectionListener(this); //列表框注册选择事件监听器
javax.swing.JTree tree = createTree();
horizontal.add(new JScrollPane(tree)); //将列表框添加在左侧滚动窗格中
horizontal.add(verical);
String[] columnNames = {"查询结果"}; //表格各列的中文标题
this.tableModel = new DefaultTableModel(columnNames,0); //默认表格模式,指定列标题,0行
this.table = new JTable(tableModel); //创建空表格,有列标题
this.list.setSelectedIndex(0); //列表框选中第一项,自动执行列表框的选择事件处理方法valueChanged()
verical.add(new JScrollPane(table)); //将表格添加在上侧滚动窗格中 需要更改成自己的类
verical.add(new MapJPanel());
this.setVisible(true); //设置可见,放在语句末结束时刷新,避免操作时总是闪屏
}
public javax.swing.JTree createTree() {
// 创建默认树
javax.swing.JTree tree = new javax.swing.JTree();
// 首先,创建一个根节点:
javax.swing.tree.DefaultMutableTreeNode rootNode = new javax.swing.tree.DefaultMutableTreeNode();
// 设定节点上的数据对象,节点显示标题则为设定对象的toString()值
rootNode.setUserObject("中国");
// 中国下有7个地区:
DefaultMutableTreeNode partNode1 = new DefaultMutableTreeNode();
partNode1.setUserObject("东北地区");
DefaultMutableTreeNode partNode2 = new DefaultMutableTreeNode();
partNode2.setUserObject("华北地区");
DefaultMutableTreeNode partNode3 = new DefaultMutableTreeNode();
partNode3.setUserObject("华东地区");
DefaultMutableTreeNode partNode4 = new DefaultMutableTreeNode();
partNode4.setUserObject("华中地区");
DefaultMutableTreeNode partNode5 = new DefaultMutableTreeNode();
partNode5.setUserObject("华南地区");
DefaultMutableTreeNode partNode6 = new DefaultMutableTreeNode();
partNode6.setUserObject("西南地区");
DefaultMutableTreeNode partNode7 = new DefaultMutableTreeNode();
partNode7.setUserObject("西北地区");
// 将地区节点加到根节点上:
rootNode.add(partNode1,partNode2,partNode3,partNode4,partNode5,partNode6,partNode7);
DefaultMutableTreeNode pNode1 = new DefaultMutableTreeNode();
pNode1.setUserObject("辽宁");
DefaultMutableTreeNode cNode1 = new DefaultMutableTreeNode();
cNode1.setUserObject("沈阳");
DefaultMutableTreeNode cNode2 = new DefaultMutableTreeNode();
cNode2.setUserObject("大连");
pNode1.add(cNode1,cNode2);
DefaultMutableTreeNode pNode2 = new DefaultMutableTreeNode();
pNode2.setUserObject("吉林");
DefaultMutableTreeNode cNode3 = new DefaultMutableTreeNode();
cNode3.setUserObject("长春");
pNode2.add(cNode3);
DefaultMutableTreeNode pNode3 = new DefaultMutableTreeNode();
pNode3.setUserObject("黑龙江");
DefaultMutableTreeNode cNode4 = new DefaultMutableTreeNode();
cNode4.setUserObject("哈尔滨");
pNode3.add(cNode4);
DefaultMutableTreeNode pNode4 = new DefaultMutableTreeNode();
pNode4.setUserObject("北京");
DefaultMutableTreeNode pNode5 = new DefaultMutableTreeNode();
pNode5.setUserObject("天津");
DefaultMutableTreeNode pNode6 = new DefaultMutableTreeNode();
pNode6.setUserObject("河北");
DefaultMutableTreeNode cNode5 = new DefaultMutableTreeNode();
cNode5.setUserObject("石家庄");
pNode6.add(cNode5);
DefaultMutableTreeNode pNode7 = new DefaultMutableTreeNode();
pNode7.setUserObject("山西");
DefaultMutableTreeNode cNode6 = new DefaultMutableTreeNode();
cNode6.setUserObject("太原");
pNode7.add(cNode6);
DefaultMutableTreeNode pNode8 = new DefaultMutableTreeNode();
pNode8.setUserObject("内蒙古");
DefaultMutableTreeNode cNode7 = new DefaultMutableTreeNode();
cNode7.setUserObject("呼和浩特");
pNode8.add(cNode7);