其實有了 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 ....(一堆雜七雜八的東西)
* ...
* ...(一堆雜七雜八的東西)
* ...
* 檔案開始
* 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");
* 接下來就自由發揮拉
0 件のコメント:
コメントを投稿