作者PsMonkey (痞子军团团长)
看板java
标题Re: [问题] 新手请问getToolkit()问题
时间Thu Jan 10 10:07:37 2013
我不是高手,而且快十年没写过 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
1F:推 vincewen:谢谢版主 很有意思的讲解 让我又多了解不少!! 01/10 14:07