曾經在開源項目openSwing上看到了一個實現類似QQ折疊面板的組件,我發現Windows裡面的任務面板和那個功能有些類似,openSwing上的代碼又略顯復雜,於是決定自己動手寫一個,廢話不說先來看看效果對比圖:
windows任務視窗:
我的模擬效果:
呵呵,還有幾分神似吧,下面來說說幾個關鍵點:
1.首先要確定整體結構:就是一個大面板嵌套N個子面板
2.確定子面板結構,首先子面板的標題頭要始終顯示,內容面板(含有子項)可以隱藏,於是我們使用BorderLayout布局子面板,引入Jbuider的VerticalFlowLayout布局內容面板,顯示或隱藏該面板時都要removeAll()子面板上所有組件,再重新添加,切忌。
3.最後就是子面板標題Button,內容項Label的實現,都是繼承基本的JComponent