用JLayeredPane编写复杂组件的例子

 上篇文章《高级Swing组件makeover的三要素》提到高级makeover组件的三要素,其中提到一个要素是立体的空间布局。前篇文章给的例子FolderPane很好集中了这三个要素,但是在空间布局上只是平面式动态布局。复杂组件往往有一类组件需要动态多层次覆盖型的组件,比如outlook express左侧任务栏的滑动窗口。在JIDESoft给的演示中也有类似的组件,如下图所示:

用JLayeredPane编写复杂组件的例子_第1张图片

      这种组件最简单直接的实现方式就是使用JLayeredPane组件。将上图屏幕上的组件进行立体分割成多个抽屉状组件,放在JLayeredPane不同的层面上,然后上下推拉这些组件,通过投影已经组件的剪裁,就会形成最终的效果。下面是描述这个结构分拆的示意图:

用JLayeredPane编写复杂组件的例子_第2张图片

   当然这个窗口的滑动效果和上文提到的FolderPane一样要结合自定义的LayoutManager和动画技术实现。昨天在前面工程的基础上实现下面这个CurtainPane,实现了上文所说的这种滑动窗口。下面是演示运行的结果:

用JLayeredPane编写复杂组件的例子_第3张图片

 

源代码在这儿可以 下载

你可能感兴趣的:(swing,express,任务)