講到了Awt跟Swing
一開始awt的design方式是用abstract factory這個design patten
所有的元件都是用作業系統的,一個按鈕在MAC跟在X-window顯示出來會不一樣
由於這樣做,牽涉到許多context switch會造成許多overhead(因為交給OS的componet處理)
作什麼事情,當你需要快時,就先用dirty solution,但是記著這邊有問題,以後有餘力要回來改
(有點像考試前先死記,之後再融會貫通XD)
當初發展JDK 1.0時也是抱持著這樣的想法,等Java紅了之後,他們派人來處理這塊
於是誕生了Swing
Swing的元件彈性很大,因為他們之所以看起來一樣是他們都是"畫"出來的
所以在MAC與Windows看起來都一樣,不再使用OS的widget(除了JFrame以外)
但Swing實際上也存在著一些問題需要解決,例如:因為是軟體畫的,無法有效運用顯示卡
然後提到了
paint & repaint & update & double buffering & GUI thread & M-V-C & applet & jar
當畫面需要更新: repaint -> update()
當視窗移動或改變: paint
如果你沒有override update時,java會先把你的影像清掉然候等待時機再paint
(考慮 GUI thread的安全) 這時會閃爍
要避免可以override update()方法 然後call paint( 相反也可以 )
或是用double buffering先畫在一個image再更新到Graphic
介紹了一下Model View Control的概念
例如JTree 這個swing componet將其樹狀資料(Model)及控制與外觀分開
還有applet與jar
把用到的class包成jar會比一個個去load快(這跟網路連線有關, TTL)
jar其實是zip , 有點像tar方式包裝
複習一下
tar -zxvf xx.tar.gz des
tar -zcvf xx.tar.gz des
jar很類似
2008年4月2日 星期三
昨天上課
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言