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