getContentPane |
答題得分者是:neoart
|
Randgris
一般會員 發表:20 回覆:30 積分:10 註冊:2007-04-15 發送簡訊給我 |
|
neoart
版主 發表:22 回覆:582 積分:425 註冊:2003-05-09 發送簡訊給我 |
實務上的作法,多是以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 發送簡訊給我 |
有看迷有懂>"<...一個是舊的視窗元件用法 一個是新的嗎?
===================引 用 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 發送簡訊給我 |
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 發送簡訊給我 |
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 發送簡訊給我 |
不過你的編譯器是不是會跟你說要用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制定寫的.我只能就經驗跟你說怎麼用, |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |