我有个数据库中的表,其字段分别为id,dateTime,title,content,现在希望根据数据库的内容动态的生成一个JTree,
大该的样子是这样的,这个JTreez主要是以时间来划分枝干的,如下图所示:
  
2009年
     |——1月份
     |      |
     |      |——题目1
     |      |
     |      |——题目2      
     |
     |
      ——2月份
     |
     |——3月份
2008年
     | ——1月份
     |      |
     |      |——题目1
     |      |
     |      |——题目2      
     |
     |
      ——2月份
     |
     |——3月份这个目录中的年份,月份,题目都是从数据库中取得的,其中年份,月份都是从数据库dateTime字段中获取,希望各位达人给个解决这个问题的方案!!谢谢啦!!PS:我原来有个想法是有若干个年份Vector,其中内容是月份的Vector,月份的Vector中的内容是当月的题目的Vector,然后题目Vector中的内容存储为该题目对应的内容,但是这个方法实现起来我遇到了不少问题,并且这个方法要在生成JTree之前将整个数据表的内容读出来,是不是有些性能问题呢?有没有什么方法可以点击一下年份,搜索下数据库生成相应的月份的枝干,然后再点击一下月份,在生成相应的题目的枝干。

解决方案 »

  1.   

    实现这个代码较多  不好放上去... ... 你要的话我给个代码附件给你   
    [email protected]
      

  2.   

    配合SQL语句,实现Treee功能吧。
    把dateTime拆分成year和month两项,order by year desc,month
    然后迭代结果集,使用两个HashSet做year和month的辅助集合,存放生成JTree节点时当前的年和月信息。
    如果集合中没有,那么说明,是新的节点,要回退到parent那一级添加新节点,之后再叶子节点。
      

  3.   

    这个有两种方式,
    一是:点击节点得到下一级节点并展开,这个比较简单,写个afterSelect事件查数据库就行
    第二个就是加载的时候就全部加载进去的那种,这种需要对你取到的值做一个遍历,看它有没有数据
    我这有个例子,但是数据较多,不好回帖发你,
    如果又需要你发邮件到我邮箱,我会个附件给你
    我邮箱是:[email protected]