SiteMap

2013年5月18日土曜日

CardLayout 簡單示範

CardLayout 簡單示範
其實有了 windows builder pro之後, 大部分的 swing layout 都可以輕鬆使用,
但還是有些需要設定



目標:按下 btn1 下面的視窗會切換到 jplCard1(上面寫著 card1)
            按下 btn2 下面的視窗會切換到 jplCard2(上面寫著 card2)




   ┌───────────────────────────────────┐   base panel (JPanel) with BoardLayout
┌──┴────────────────────────────────┐  │/
│top   ┌───────┐         ┌───────┐  │  │
│panel │  btn1 │Flow     │ btn2  │  │  │
│      └───────┘Layout   └───────┘  │  │
│───────────────────────────────────│  │
│center                             │  │
│panel  ( CardLayout )              │  │
│                                   │  │
│                                   │  │
│                                   │──┘
└───────────────────────────────────┘


base panel 的 Layout就像上面寫的一樣, 使用 BoardLayout
上面是的位置是 North, 下面是 Center
center panel 裏面塞了兩個 JPanel, 分別是 card1, card2

其實上面那些都不重要, 
重點在 center_panel

// 參數1→要加入的panel, 參數2,"card1"→替jplCard1選定的名稱
center_panel.add(jplCard1, "card1");
center_panel.add(jplCard2, "card2");
/* 上面這兩行的意思是在 center_panel裏面塞進兩個 JPanel, 變數名稱分別為
 * jplCard1 跟 jplCard2, 順便用String 幫它們起個名稱, 分別為 card1, card2
 * 接著使用當初 center_panel 設定的 CardLayout 的 show() 來變換 jplcard1, jplcard2
 * 相關程式碼大概是這樣
 *
 * 檔案開始
 * import ....(一堆雜七雜八的東西)
 * ...
 * ...(一堆雜七雜八的東西)
 * ...
 * //宣告 CardLayout 並將 center_panel 的Layout設定為它
 * CardLayout center_panel_layout = new CardLayout();
 * center_panel.setLayout(center_panel_layout);  * ....
 * ...
 * ..  
 * .  
 * center_panel.add(jplCard1, "card1");
 * center_panel.add(jplCard2, "card2");  * ...  * ...
 * //要更換 card的時候這樣寫, 則 center_panel 會秀出 jplCard1
 * center_panel_layout.show( center_panel, "card1");
 * //要更換成 card2 的寫法亦同
 * center_panel_layout.show( center_panel, "card2");
 * 接下來就自由發揮拉
 */

 在這裡下載 source code

0 件のコメント: