線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:4751
推到 Plurk!
推到 Facebook!

getContentPane

答題得分者是:neoart
Randgris
一般會員


發表:20
回覆:30
積分:10
註冊:2007-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-05-02 10:23:15 IP:122.124.xxx.xxx 未訂閱
請問大家getContentPane()到底作用為何呢?

JFrame j = new JFrame();

像是JFrame 有時存放一物件就會使用

j.add(X); 但有時又使用 j.getContentPane().add(Y);

我都搞迷糊了...


neoart
版主


發表:22
回覆:582
積分:425
註冊:2003-05-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-05-02 17:46:19 IP:61.64.xxx.xxx 訂閱
實務上的作法,多是以JPanel做為頁面
ex
class PnlFuncList extends JPanel {
...
...
}

class PnlFuncA extends JPanel {
...
...
}


日後
切換時,只要下以下的指令
PnlFuncList pnlFunc=new PnlFunList();
AppFrame.getContentPane().revmoeAll();
AppFrame.getContentPan().add(pnlFunc,null);....
...
...
...
PnlFuncA pnlFunA=new PnlFuncA();
AppFrame.getContentPane().revmoeAll();
AppFrame.getContentPan().add(pnlFuncA,null);.
-----------------------------------------------------------------------------------------------
別忘了用IDE去lay out JPanel,省的你要花時間在算元件位置
說真的,開發中,大多都是知行合一去強化自己的觀念(有時候,書會有寫錯的時候,盡信書不如無書),
真的要等到所有的東西都懂才去做的話,沒有老闆會請這樣的人---不要說"我不懂",要說"我試試"
編輯記錄
neoart 重新編輯於 2007-05-02 17:47:04, 註解 無‧
Randgris
一般會員


發表:20
回覆:30
積分:10
註冊:2007-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-05-05 21:12:55 IP:140.126.xxx.xxx 未訂閱
有看迷有懂>"<...一個是舊的視窗元件用法 一個是新的嗎?
===================引 用 neoart 文 章===================
實務上的作法,多是以JPanel做為頁面
ex
?class PnlFuncList extends JPanel {
?? ...
?? ...
?}

?class PnlFuncA extends JPanel {
?? ...
?? ...
?}


日後
切換時,只要下以下的指令
?PnlFuncList pnlFunc=new PnlFunList();
?AppFrame.getContentPane().revmoeAll();
AppFrame.getContentPan().add(pnlFunc,null);....
?...
...
...
PnlFuncA pnlFunA=new PnlFuncA();
?AppFrame.getContentPane().revmoeAll();
AppFrame.getContentPan().add(pnlFuncA,null);.
-----------------------------------------------------------------------------------------------
別忘了用IDE去lay out JPanel,省的你要花時間在算元件位置
說真的,開發中,大多都是知行合一去強化自己的觀念(有時候,書會有寫錯的時候,盡信書不如無書),
真的要等到所有的東西都懂才去做的話,沒有老闆會請這樣的人---不要說"我不懂",要說"我試試"
neoart
版主


發表:22
回覆:582
積分:425
註冊:2003-05-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-05-06 08:26:33 IP:220.132.xxx.xxx 訂閱
OK,舉個很簡單的例子
假設
你目前要設計兩個功能可以切換的小程式
SA文件一定是先有一頁主功能切換頁 (Page 1)
A畫面有25個元件要放上去 (page 2)
B畫面有300元件要放上去(Page3)
請問你在這些頁面切換時,是要一個一個小元件去add & remove 嗎?
(也就是你的頁面切換函數要怎麼寫?)
當然不是,而是把頁面都視作一個大元件--JPanel , 去對你的JFrame的contentPanel去add & remove
JFrame是你目前開發的最外層容器,JPanel是一般的容器
Randgris
一般會員


發表:20
回覆:30
積分:10
註冊:2007-04-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-05-06 12:30:37 IP:140.126.xxx.xxx 未訂閱
JFrame j = new JFrame();
JPanel JPan = new JPanel( );
Label Lab = new Label("這是放在 JPan 中的文字標籤") ;
Lab.setSize(200 , 100);
JPan.add(Lab);
j.add(JPan);
//j.getContentPane().add(JPan);
j.setSize(200, 100);
j.setVisible(true);

兩個結果一樣 >_<...
到底為什麼呢?
neoart
版主


發表:22
回覆:582
積分:425
註冊:2003-05-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-05-06 14:50:21 IP:220.132.xxx.xxx 訂閱
不過你的編譯器是不是會跟你說要用getContentPan去add,而不建議你直接用JFrame.add,是吧?
這種所以然的細節,如果你認為是個bug的話,請你直接寄去 http://bugs.sun.com/services/bugreport/index.jsp?referer=http://developers.sun.com/services/index.jsp&category=bugreport
做bug report.
,因為那些元件是JCP制定寫的.我只能就經驗跟你說怎麼用,
系統時間:2024-05-05 17:42:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!