之前做了一个JTree是把所有的数据都从数据库中查出来,在生成一棵树,但是问题是太慢了,要等半个小时,
现在我想在展开某个节点的时候再去数据库中查其子节点,若有就添加,小弟才学不会,请大家帮忙,先谢谢了,能贴些代码最好

解决方案 »

  1.   

    没有人会吗?看来SWING真的很少人在用
      

  2.   

    呵呵,重写JTree的expandPath(parent)方法首先自定义 TreeNode,添加标示 是不是第一次打开 boolean isFirstExpand在expandPath的时候,对节点进行判断,如果已经打开过,直接 super.expandPath(path);是第一次打开,执行你自己的处理, OK。PS:具体代码就不写了,不要问我要代码,已经说的很清楚了
      

  3.   

    java核心技术 配套源码里有这个实例,
    不妨运行一下试试。
      

  4.   

    你取数据的逻辑放到普通线程,
    addChild的时候的过程逻辑放到SwingUtilites.invokerLater线程中,
    就不会感觉慢,而且也不会死机的.
    Swing 是单工线程的,你大量的的逻辑取数据的逻辑放到SwingUtilies 线程中,会死掉的.
    这也是Swing 的精髓地方.理解这也算是对Swing 有个很大的跨步了.多去看看书,去理解它,理解了你就会知道遇见这样的问题,怎么处理了.
    当JTable 显示大量的数据道理也是一样的.还有Swing都会要用这种手段处理的.
      

  5.   

    来我blog看看吧,http://vearn.javaeye.com/blog/344591是讲异步加载node的哦