曾经在开源项目openSwing上看到了一个实现类似QQ折叠面板的组件,我发现Windows里面的任务面板和那个功能有些类似,openSwing上的代码又略显复杂,于是决定自己动手写一个,废话不说先来看看效果对比图:
windows任务视窗:
我的模拟效果:
呵呵,还有几分神似吧,下面来说说几个关键点:
1.首先要确定整体结构:就是一个大面板嵌套N个子面板
2.确定子面板结构,首先子面板的标题头要始终显示,内容面板(含有子项)可以隐藏,于是我们使用BorderLayout布局子面板,引入Jbuider的VerticalFlowLayout布局内容面板,显示或隐藏该面板时都要removeAll()子面板上所有组件,再重新添加,切忌。
3.最后就是子面板标题Button,内容项Label的实现,都是继承基本的JComponent