你这个问题够复杂,呵呵
做一个超类,每个JTable(其实也可以用JPanel)都从这个超类继承,一个表就是一个模块strTableModule = ((YourObject)currentNode.getUserObject()).getModuleName();
//加载模块类
Class tableClass = Class.forName(strTableModule);
//生成模块实例
baseTable = (BaseTable)tableClass.newInstance();
//初始化模块
baseTable.init();
做一个超类,每个JTable(其实也可以用JPanel)都从这个超类继承,一个表就是一个模块strTableModule = ((YourObject)currentNode.getUserObject()).getModuleName();
//加载模块类
Class tableClass = Class.forName(strTableModule);
//生成模块实例
baseTable = (BaseTable)tableClass.newInstance();
//初始化模块
baseTable.init();
class NodeObject
{
private int type = null;
private Object object = null;
private String label = null;
public String getLabel();
public Object getObject();
public int getType();
public void setLabel(String label);
public void setObject(Object object);
public void setType(int type);
public String toString();//直接返回label,做为显示的label用
}TreeNode的userobject置为该类的对象,而该对象的label为想在tree上显示的标签,object为你需要处理的对象类型(例如,你需要处理的表名称、数据库连接对象或其他相关对象),每次选定node的时候,getUserObject(),然后从获取到的object中转换为NodeObject,再getObject()获取你需要处理的对象,再进行处理。