JTree如何在展开时动态添加节点 之前做了一个JTree是把所有的数据都从数据库中查出来,在生成一棵树,但是问题是太慢了,要等半个小时,现在我想在展开某个节点的时候再去数据库中查其子节点,若有就添加,小弟才学不会,请大家帮忙,先谢谢了,能贴些代码最好 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 没有人会吗?看来SWING真的很少人在用 呵呵,重写JTree的expandPath(parent)方法首先自定义 TreeNode,添加标示 是不是第一次打开 boolean isFirstExpand在expandPath的时候,对节点进行判断,如果已经打开过,直接 super.expandPath(path);是第一次打开,执行你自己的处理, OK。PS:具体代码就不写了,不要问我要代码,已经说的很清楚了 java核心技术 配套源码里有这个实例,不妨运行一下试试。 你取数据的逻辑放到普通线程,addChild的时候的过程逻辑放到SwingUtilites.invokerLater线程中,就不会感觉慢,而且也不会死机的.Swing 是单工线程的,你大量的的逻辑取数据的逻辑放到SwingUtilies 线程中,会死掉的.这也是Swing 的精髓地方.理解这也算是对Swing 有个很大的跨步了.多去看看书,去理解它,理解了你就会知道遇见这样的问题,怎么处理了.当JTable 显示大量的数据道理也是一样的.还有Swing都会要用这种手段处理的. 来我blog看看吧,http://vearn.javaeye.com/blog/344591是讲异步加载node的哦 排序问题 小弟求解到java题目 文件路径问题 中间件问题 在java中如何改变文件的属性? JList 水平滚动条没出现 新手看书没看懂,请各位大哥帮解释一下,好么? 为什么老找不到javax.mail.*;? 为什么不能显示中文?帮忙 【JAVAse的一堆奇葩的问题】 虽然==与equals的问题很老了,我还是忍不住来发个帖提问 快来猜猜这两句的打印结果
不妨运行一下试试。
addChild的时候的过程逻辑放到SwingUtilites.invokerLater线程中,
就不会感觉慢,而且也不会死机的.
Swing 是单工线程的,你大量的的逻辑取数据的逻辑放到SwingUtilies 线程中,会死掉的.
这也是Swing 的精髓地方.理解这也算是对Swing 有个很大的跨步了.多去看看书,去理解它,理解了你就会知道遇见这样的问题,怎么处理了.
当JTable 显示大量的数据道理也是一样的.还有Swing都会要用这种手段处理的.