【Swing入门教程】一步一步做Netbeans(4):JTree的使用及定制TreeCellRenderer

      下一步我们要做什么呢,其实我是想早点睡觉;我一直有个愿望,希望能在12点之前睡觉,每次都被我硬生生的拖到12点以后,我一直认为12点之前睡觉是浪费时间,会有一种负罪感。那都是学生时代养成的习惯,那时晚睡没关系,第二天可以补回来。然而,工作了觉是补不回来的。

      JTree是Swing里一个很重要的组件,要详细讲的话起码要N个教程。我这就偷工减料,况且我对JTree的理解也只是入门阶段,还是不误人子弟的好。接下来我们要实现Netbeans中项目的文件树列表,这个非JTree莫选了。按惯例,先看下效果:

文件树效果

      有几点做的不好:

      1:根节点还在。或许你说用setRootVisible(false)不就行了。这样虽然根节点看不见了,但是下面主节点前的小加号都没了,这个暂时还不知道怎么解决,希望各位给点意见。

      2:顺序有点乱,和Netbeans中的顺序不一样。我是采用JTree的默认排序,它是按字母排序的;而Netbeans的规律是文件夹在前,文件在后。

      3:节点的图标和文件名的距离过近。这个就是图标的问题了,Netbeans图标的右边肯定留了一些空白,他有两套图标,另一套是给有版本控制用的(右边多了个小标志)。

      废话不多说了,上代码;先在"文件"面板上放入JTree,通过initTree()来初始化:

      initTree()中重要的是如何通过文件夹来初始化JTree的节点,里面用到的一个递归函数;在学校时递归函数没理解好,还在里面绕了一小会:

     这样一颗文件树就构造好了,只是树节点的图标都是JTree默认的图标,和Netbeans的不一样。于是不得不为JTree定制渲染器了,至少把图标改一下嘛:

   

       需要为JTree指定TreeCellRenderer,initTree()中的188行加入:

搞定收工。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值