推 vincewen:謝謝版主 很有意思的講解 讓我又多了解不少!! 01/10 14:07
我不是高手,而且快十年沒寫過 Swing/AWT 了
我是來鞭屍的 [揮舞]
※ 引述《vincewen (Zafe)》之銘言:
: 小弟最近在自學練習JAVA的GUI
: 想說先從AWT開始下手
: 目前在練習貼圖的時候
: Image ig;
: ig=getToolkit().getImage("C:/java/AWT02.jpg");
基本上,以問問題的角度,這樣的寫法不太妙
因為看的人會不知道 getToolkit() 到底是「誰」的 method
雖然你都說你在弄 AWT 的東西
正常人會預設你在講 java.awt.Component.getToolkit()
(是的,我不正常 [遮臉])
但是難保你真正用的 class 沒有 override 掉?
當然,要認真鞭我這段話的話
那其實單純用 Component.getToolkiet() 來回答也不會怎樣?
(謎之聲:你到底要說什麼?)
: g.drawImage(ig,40,260,ig.getWidth(this),ig.getHeight(this),this);
: 想請問一下為什麼要加getToolkit()
: 我有上網查了一下知道他是一個抽象類別
: 但是還是有點搞不清楚為什麼要加這行
: 能個請高手稍微指點一下嗎
: 或著舉個getToolkit()他其它會用到的例子,
: 然後它們的關聯性>"< 感激不盡!
問「為甚麼」是一件很好的事情
雖然我覺得你問的「為甚麼」不是那麼「為甚麼」
我先跳過 java.awt.Toolkit 這個 class 的實際用途
(因為我不會 XD)
而是單純看 Component 跟 Toolkit 之間的關係
來說「這可能是為甚麼?」
不如我再來說個故事... (謎之聲:還來...)
你要辦一個無差別武鬥大會
賽前按照慣例檢驗選手武器
你要葉問交出他的武器,他會捲袖子說:就是我的手
你要李小龍交出他的武器,他會給你雙節棍
也就是說
選手 選手A = 請神閣.葉問下凡();
選手 選手B = 請神閣.李小龍下凡();
武器 武器A = 選手A.get武器(); //得到一雙手
武器 武器B = 選手B.get武器(); //得到一組雙節棍
很自然地,你自然會用「武器」這個泛稱
因為你不知道比賽的時候是哪兩個人比、會交出什麼武器
但是武器一定可以...
武器A.攻擊();
武器B.攻擊();
所以比賽的規則跟邏輯就會很好寫
反正怎麼攻擊是選手自己要煩惱的事情
好了,在這個故事中
* 選手:就是 Component
* 武器:就是 Toolkit
* 攻擊():就是 getImage()
可能在 OOP / Design Pattern 裡頭有個專有名詞在講這件事情
但是那太難了,我不會
--
錢鍾書: 說出來的話
http://www.psmonkey.org
比不上不說出來的話
Java 版 cookcomic 版
只影射著說不出來的話
and more......
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.202.140