利用数据中的数据初始化一个JTree做导航菜单,怎么实现?

解决方案 »

  1.   

    楼上,我的意思是说,数据库中的数据取出来的方式是什么样的。
    就是如何组织数据。
    例如,A节点下有b,c节点,b节点下有d,e节点,c节点下有f,g,h节点,
    是按照层次一层一层的取,还是直接将数据以a-b-d,a-b-e这样的方式取呢?
    如果按a-b-d方式取的话怎么组织呢?
      

  2.   

    Swing JTree还这么用心研究值得学习
      

  3.   

    首先,数据表要维护好,表中需要有一字段,父级ID,
    在程序读取数据时,写一方法实现递归获取数据,把顶级父节点传进去,把所有数据都封装好
    类似:id | name | parentid
    1  |  a   |    0
    2  |  b   |    1
    3  |  c   |    1
    4  |  d   |    2
    5  |  e   |    3
      

  4.   


    那数据如何组织呢?放到一个Hashtable<String,List>()中吗?
    能不能直接用数组组织?
      

  5.   

    那么数据库中的数据是按照树状结构的层次取出来,取一层初始化一层,还是一次性将所有数据取出然后初始化?   
    =================================
    这个就看 Jtree 的model要怎么实现了,model中组织数据,节点很多的话,建议用lazy的模式,初始化就取一层,展开这层中的节点时再去取第二层 树节点的数据,
    节点少的话,直接全部取出,在model中组织结构就可以了.建议,不要用swing的派发线程去取数据,有可能会阻塞界面绘制,实现个swingworker线程作为专门取数据的后台线程.