//SqlTree1.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.io.*;
import javax.swing.tree.*;
import javax.swing.border.*;
import java.applet.*;
import javax.swing.JPanel;
import java.net.*;
import java.io.File;
import java.util.*;
import java.util.Vector;
import java.sql.*;class SqlTree extends JFrame
{
JTree tree = null;
JScrollPane treescroll = null;
Container container = null;
DBPool pool = null; public SqlTree()
{
super("SqlTree1");
container = this.getContentPane();
//setLayout(new BorderLayout());
pool = new DBPool("tree pool");
treeInit();
treescroll = new JScrollPane(tree);
container.add(treescroll);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
setSize(800,580);
show();
}
public void treeInit()
{
tree=new JTree(createTreeModel());
tree.putClientProperty("JTree.lineStyle","Angled");
tree.setCellRenderer(new TreeRenderer());
tree.addTreeExpansionListener(new MyTreeExpansionListener());
tree.addTreeSelectionListener(new MyTreeSelectionListener());这个下面地方为什么有错?应该怎么写?
MyTreeExpansionListener.pool = this.pool;
MyTreeSelectionListener.pool = this.pool;
//tree.addMouseListener(new MyMouseEvent());
}
public DefaultTreeModel createTreeModel()
{
String root="sytouch";
treeNode rootNode=new treeNode(root);
Connection con = pool.GetConnection();
rootNode.explore(con);
pool.ReleaseConn(con);
//directoryname = "c:\\";
System.out.println("createTreeModel ok");
return new DefaultTreeModel(rootNode);
}
/////////////////class MyTreeSelectionListener
class MyTreeSelectionListener implements TreeSelectionListener
{
//DBPool pool = new DBPool("selected pool");
DBPool pool = null;
public void valueChanged(TreeSelectionEvent e)
{
System.out.println("selected");
TreePath path=e.getPath();
treeNode node=(treeNode)path.getLastPathComponent();
if(!node.isex())
{
DefaultTreeModel model=(DefaultTreeModel)tree.getModel();
Connection con = pool.GetConnection();
node.explore(con);
pool.ReleaseConn(con);
model.nodeStructureChanged(node);
}
}
}
/////////////////////////class MyTreeExpansionListener
class MyTreeExpansionListener implements TreeExpansionListener
{
//DBPool pool = new DBPool("expansion pool");
DBPool pool = null;
public void treeCollapsed(TreeExpansionEvent e)
{
System.out.println("exacted");
}
public void treeExpanded(TreeExpansionEvent e)
{
System.out.println("expanded");
TreePath path=e.getPath();
treeNode node=(treeNode)path.getLastPathComponent();
if(!node.isex())
{
DefaultTreeModel model=(DefaultTreeModel)tree.getModel();
Connection con = pool.GetConnection();
node.explore(con);
pool.ReleaseConn(con);
model.nodeStructureChanged(node);
}
}
}
public static void main(String args[])
{
SqlTree frame = new SqlTree();
}
class WindowsEventListener extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
}
class treeNode extends DefaultMutableTreeNode
{
boolean ex=false;
Vector DirectoryList = new Vector();
String mldm;
//String[] directory = new String[2];
public treeNode(String f)
{
setUserObject(f);
}
public boolean isex()
{
return ex;
}
public boolean noex()
{
ex = false;
return ex;
}
public int getCount()
{
System.out.println("have leaf:"+getLeafCount());
System.out.println("have chils:"+getChildCount());
System.out.println("have brother:"+getSiblingCount());
//return getChildCount();
return getLeafCount();
}
public String getDirectory()
{
return (String)getUserObject();
}
public void remove(int childIndex)
{
MutableTreeNode child = (MutableTreeNode)getChildAt(childIndex);
children.removeElementAt(childIndex);
}
public void delete()
{
removeAllChildren();
}
public void explore(Connection con)
{
if(!isex())
{
mldm = getDirectory();
System.out.println(mldm);
connect1(mldm,con);
for(int i=0;i<DirectoryList.size();i++)
{
add(new treeNode((String)DirectoryList.elementAt(i)));
}
ex=true;
System.out.println("TreeNode explore ok");
}
}
public void connect1(String mldm,Connection conn)
{
try
{
}
catch(Exception e)
{
System.err.println(e.toString());
System.exit(1);
}
}
}
class DBPool
{
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.io.*;
import javax.swing.tree.*;
import javax.swing.border.*;
import java.applet.*;
import javax.swing.JPanel;
import java.net.*;
import java.io.File;
import java.util.*;
import java.util.Vector;
import java.sql.*;class SqlTree extends JFrame
{
JTree tree = null;
JScrollPane treescroll = null;
Container container = null;
DBPool pool = null; public SqlTree()
{
super("SqlTree1");
container = this.getContentPane();
//setLayout(new BorderLayout());
pool = new DBPool("tree pool");
treeInit();
treescroll = new JScrollPane(tree);
container.add(treescroll);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
setSize(800,580);
show();
}
public void treeInit()
{
tree=new JTree(createTreeModel());
tree.putClientProperty("JTree.lineStyle","Angled");
tree.setCellRenderer(new TreeRenderer());
tree.addTreeExpansionListener(new MyTreeExpansionListener());
tree.addTreeSelectionListener(new MyTreeSelectionListener());这个下面地方为什么有错?应该怎么写?
MyTreeExpansionListener.pool = this.pool;
MyTreeSelectionListener.pool = this.pool;
//tree.addMouseListener(new MyMouseEvent());
}
public DefaultTreeModel createTreeModel()
{
String root="sytouch";
treeNode rootNode=new treeNode(root);
Connection con = pool.GetConnection();
rootNode.explore(con);
pool.ReleaseConn(con);
//directoryname = "c:\\";
System.out.println("createTreeModel ok");
return new DefaultTreeModel(rootNode);
}
/////////////////class MyTreeSelectionListener
class MyTreeSelectionListener implements TreeSelectionListener
{
//DBPool pool = new DBPool("selected pool");
DBPool pool = null;
public void valueChanged(TreeSelectionEvent e)
{
System.out.println("selected");
TreePath path=e.getPath();
treeNode node=(treeNode)path.getLastPathComponent();
if(!node.isex())
{
DefaultTreeModel model=(DefaultTreeModel)tree.getModel();
Connection con = pool.GetConnection();
node.explore(con);
pool.ReleaseConn(con);
model.nodeStructureChanged(node);
}
}
}
/////////////////////////class MyTreeExpansionListener
class MyTreeExpansionListener implements TreeExpansionListener
{
//DBPool pool = new DBPool("expansion pool");
DBPool pool = null;
public void treeCollapsed(TreeExpansionEvent e)
{
System.out.println("exacted");
}
public void treeExpanded(TreeExpansionEvent e)
{
System.out.println("expanded");
TreePath path=e.getPath();
treeNode node=(treeNode)path.getLastPathComponent();
if(!node.isex())
{
DefaultTreeModel model=(DefaultTreeModel)tree.getModel();
Connection con = pool.GetConnection();
node.explore(con);
pool.ReleaseConn(con);
model.nodeStructureChanged(node);
}
}
}
public static void main(String args[])
{
SqlTree frame = new SqlTree();
}
class WindowsEventListener extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
}
class treeNode extends DefaultMutableTreeNode
{
boolean ex=false;
Vector DirectoryList = new Vector();
String mldm;
//String[] directory = new String[2];
public treeNode(String f)
{
setUserObject(f);
}
public boolean isex()
{
return ex;
}
public boolean noex()
{
ex = false;
return ex;
}
public int getCount()
{
System.out.println("have leaf:"+getLeafCount());
System.out.println("have chils:"+getChildCount());
System.out.println("have brother:"+getSiblingCount());
//return getChildCount();
return getLeafCount();
}
public String getDirectory()
{
return (String)getUserObject();
}
public void remove(int childIndex)
{
MutableTreeNode child = (MutableTreeNode)getChildAt(childIndex);
children.removeElementAt(childIndex);
}
public void delete()
{
removeAllChildren();
}
public void explore(Connection con)
{
if(!isex())
{
mldm = getDirectory();
System.out.println(mldm);
connect1(mldm,con);
for(int i=0;i<DirectoryList.size();i++)
{
add(new treeNode((String)DirectoryList.elementAt(i)));
}
ex=true;
System.out.println("TreeNode explore ok");
}
}
public void connect1(String mldm,Connection conn)
{
try
{
}
catch(Exception e)
{
System.err.println(e.toString());
System.exit(1);
}
}
}
class DBPool
{
}
解决方案 »
- 帮忙排出错误啊呵呵,就这么多分了
- VC++学习群。希望大家踊跃加入。群号:14215425
- for循环语句这样写表示什么意思?
- raw socket的简单问题?!
- WIN3.X下的串口及SOCKET编程
- 一个关于VC数据库编程的非技术性问题
- 如何将已经存在的EDIT的类型变为PASSWORD的类型
- 谁知道在VC里如何实现象VB中的ON ERROR RESUME NEXT 的功能
- 如何用ado连接sql,有例子吗?不要通过ODBC的要OLEDB引擎的,谢谢
- 请教:如何利用MS提供的动态连接库建立自己的CAB(cabinet)文件。
- smtp发送email的VC,请高手帮忙解释一下,再线等待,高分相送
- 请问如何在vc应用程序中嵌入IE浏览器,达到在程序中浏览网页的效果!
MyTreeExpansionListener.pool = this.pool;
MyTreeSelectionListener.pool = this.pool;
MyTreeExpansionListener myTreeExpansionListener = new MyTreeExpansionListener());
myTreeExpansionListener.pool = this.pool;
MyTreeSelectionListener myTreeSelectionListener = new MyTreeSelectionListener());
myTreeSelectionListener.pool = this.pool;
tree.addTreeExpansionListener(myTreeExpansionListener);
tree.addTreeSelectionListener(myTreeSelectionListener);其次,你得修改MyTreeExpansionListener和MyTreeSelectionListener。
public DBPool pool = null;如果你只希望它出现一个实例,可以参看Singleton模式。
MyTreeExpansionListener myTreeExpansionListener = new MyTreeExpansionListener());
myTreeExpansionListener.pool = this.pool;
MyTreeSelectionListener myTreeSelectionListener = new MyTreeSelectionListener());
myTreeSelectionListener.pool = this.pool;
tree.addTreeExpansionListener(myTreeExpansionListener);
tree.addTreeSelectionListener(myTreeSelectionListener);其次,你得修改MyTreeExpansionListener和MyTreeSelectionListener。
public DBPool pool = null;如果你只希望它出现一个实例,可以参看Singleton模式。