Discussion:
[工具] 怎用import SWT呀
(时间太久无法回复)
艾斯寇德
2007-07-09 12:26:36 UTC
Permalink
※ 引述《Astroboy0803 (Drucker)》之銘言:
: 在圖書館借了本書,目前再寫到用swt元件,我想說先按書打,然後再來了解(之前上課只
: 教awt和swing,所以這部份比較不熟),但我打第一行他就出錯了,有人可以告訴我是
: 怎麼回事呀!還是說我還要設定什麼嗎?
: Loading Image...
: 看圖就知道,他底下都會有紅色的標示,就連程式我也是用課本範例直接貼上的,我不懂
: 為什麼會有錯!課本是有說打什麼引數,但我造打還是有錯,還是說要依自己的版本呀!
: 可以請熱心的鄉民教教我嗎?我找了一整天了!
import類似C的include
只是這是一個真實的指令
他是去尋找一個package、一個java、或者class

那麼你去java底下找找看有沒有org ...這類的資料夾
課本上這麼說,不一定代表你的電腦有,或者別人的版本有
因為那有可能是課本的作者自己寫的一個類別/套件
那麼就得自行建立資料夾,去把他的範例檔案複製貼上,慢慢製作
或者他通常會附在課本裡面的光碟片
依照他的步驟把檔案copy到相對的資料夾吧

不一定要放到java的資料夾,這類的非通用的建立在同樣的專案底下比較妥當


--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.127.209.65
艾斯寇德
2007-07-10 00:34:14 UTC
Permalink
※ 引述《***@cd.twbbs.org ( )》之銘言:
: ※ 引述《***@ptt.cc (艾斯寇德)》之銘言:
: > import類似C的include
: > 只是這是一個真實的指令
: > 他是去尋找一個package、一個java、或者class
: 不要誤導人家,沒有import還是可以正常使用其他class or package
: 只是你要寫全名
: 正確的說 import對應到C++ 的 using namespace;
: [Modified by adolf] From: 218.172.22.83 (2007/07/09 Mon 23:02:38)

這就叫誤導人家的話...
嘖嘖

我只是把做法說出來罷了

using namespace? 真要說的話

他有對應嗎?沒有吧

using namespace 你還是得把檔案include進來你才有那個namespace

java他所指的是資料夾路徑

不然萬用字元 * 幹麻用的?

難道using namespace就可以 * ?

using namespace *;
這啥語法?

使用命名空間小菊花嗎?!



你這樣說才是真正誤導別人啦

他不過是類似namespace


你的反駁有如下不成立:

using namespace必須在這個namespace存在的條件下
如果要用別人寫好的namespace,事先一定得先include別人的檔案
include檔案,你得知道這個資料夾在目前檔案的哪個相對位置

一樣的你把那些 package、 java、class ...套件殺掉看看
檔案都沒了你哪裡來的namespace?

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.127.209.65
嗚嗚..
2007-07-10 01:21:12 UTC
Permalink
你腦袋還正常嗎??
adolf沒說錯, import跟c++的include不一樣
這兩句話就可以讓你衍生這麼多搞笑的內容
去google看看java "import is not" include吧
應該有幾篇提到import跟include不同
你最後面的文章讓我看的快笑死...好好笑...
這種標題怎麼可以寫出這種內容..哈


※ 引述《sunneo (艾斯寇德)》之銘言:
: ※ 引述《***@cd.twbbs.org ( )》之銘言:
: : 不要誤導人家,沒有import還是可以正常使用其他class or package
: : 只是你要寫全名
: : 正確的說 import對應到C++ 的 using namespace;
: : [Modified by adolf] From: 218.172.22.83 (2007/07/09 Mon 23:02:38)
: 這就叫誤導人家的話...嘖嘖
: 我只是把做法說出來罷了
: using namespace? 真要說的話
: 他有對應嗎?沒有吧
: using namespace 你還是得把檔案include進來你才有那個namespace
: java他所指的是資料夾路徑
: 不然萬用字元 * 幹麻用的?
: 難道using namespace就可以 * ?
: using namespace *;
: 這啥語法?
: 使用命名空間小菊花嗎?!
: 噗
: 你這樣說才是誤導別人吧?!你這麼說後,如果有一本書叫我們建立資料夾並且把
: 他寫的java放進去,你又怎麼說?
: 難道你想說 "這是褻瀆神明的罪啊!!java是我的神!"
: 你這樣不過是把java放在電腦前面供奉的人
: 你會寫套件嗎?看樣子不會
: 你寫C/C++有在自己寫標頭檔,類別嗎?
: 看來沒有
: 只把include風一樣的吹過
: 或者說你是VC6的受害者
: 他不過是類似namespace
: 你的反駁有如下不成立:
: using namespace必須在這個namespace存在的條件下
: 如果要用別人寫好的namespace,事先一定得先include別人的檔案
: include檔案,你得知道這個資料夾在目前檔案的哪個相對位置
: 一樣的你把那些 package、 java、class ...套件殺掉看看
: 檔案都沒了你哪裡來的namespace?
: 我很想質疑你有沒有碰C/C++的經驗
: 該不會還停留在-以為include 不是一種找檔案的動作吧
: include 是 preprocessor instruction,使用尖括號表示
: 他得先到環境設定的函式庫去找這個檔案
: java的import也是一個找檔案的動作啊
: 如果要說的話,你怎麼不說他是一種external的import?
: external有分為定義跟宣告,定義的external的cpp檔就算是被export
: 同資料夾下的檔案都看的到那個cpp檔用extern宣告的函式、全域變數
: extern在別的地方使用不就是一種import
: 標準函式庫就做到了把crt.lib裡面以及msvcrt.dll的標頭檔給import進來的動作啊
: 他就extern了那些函式跟類別
: 我碰過很多重考生,他們也許是因為太老氣了,或者封閉太久了
: 很會自以為是,只會出一張嘴,出的建議都是偉大無比的
: 比如說今天有一個活動,需要無限流量的網路資源
: 就會有一個重考生說
: "那就去計中跟他們要一台電腦啊,甚至跟他們主管要一個沒限流量的IP"
: 笑死人大牙
: 或者要同學去想一個演算法 ok
: 有一個重考生也是很自以為是的說 "阿就這樣算一算就出來啦"
: 然後老師糾正了還是在那狡辯。
: 一整節課有大部分的時間都花在他的狡辯上
: 這種重考生... 嘖嘖
: 只覺得自己那種偏隘的想法是全面性正確的
: 我覺得你的素質跟那些重考生沒兩樣

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.138.150.67
※ 編輯: kojilin 來自: 140.138.150.67 (07/10 09:21)
艾斯寇德
2007-07-10 01:32:11 UTC
Permalink
※ 引述《kojilin (嗚嗚..)》之銘言:
: 你腦袋還正常嗎??
: adolf沒說錯, import跟c++的include不一樣
: 這兩句話就可以讓你衍生這麼多搞笑的內容
: 去google看看java "import is not" include吧
: 應該有幾篇提到import跟include不同
: 你最後面的文章讓我看的快笑死...好好笑...
: 這種標題怎麼可以寫出這種內容..哈

喔?
所以說一個檔案一個類別要是沒有存在的話你還是可以用
在作夢吧?

C++'s #include is commonly used to for library headers, but the mechanism
which is used is fundamentally different.

#include inserts the entire source file that is referenced
into your C++ program. In contrast,

the Java import statement only looks up the the identifiers
and their declarations from the compiled class file (not the source files).

我現在更覺得你腦袋不正常
而且我有說他們兩者一樣嗎?
你哪裡看到我說一樣啦?

我開始說的是他會去找一個package、一個java、一個class

這些當然可以被建立在資料夾底下,你如果把那些資料夾的檔案砍了
甚至把一個class移動到別的資料夾,他就不可能在同樣的import敘述下完成

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.127.209.65
※ 編輯: sunneo 來自: 59.127.209.65 (07/10 09:32)
2007-07-10 01:45:16 UTC
Permalink
※ 引述《***@ptt.cc (艾斯寇德)》之銘言:
: 甚至把一個class移動到別的資料夾,他就不可能在同樣的import敘述下完成
如果你的class檔案是位在jar檔裡
只要這個jar在你的classpath中
不管放哪你都可以import

--
※Post by hellfire from H-194-198.RAS.NCTU.edu.t
老鼠的香香乳酪洞˙電子佈告欄系統˙alexbbs.twbbs.org˙140.113.166.7
艾斯寇德
2007-07-10 02:09:25 UTC
Permalink
※ 引述《***@alexbbs.twbbs.org (樹)》之銘言:
: ※ 引述《***@ptt.cc (艾斯寇德)》之銘言:
: : 甚至把一個class移動到別的資料夾,他就不可能在同樣的import敘述下完成
: 如果你的class檔案是位在jar檔裡
: 只要這個jar在你的classpath中
: 不管放哪你都可以import

受教了 ._.


--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.127.209.65
Alien
2007-07-10 03:42:09 UTC
Permalink
※ 引述《sunneo (艾斯寇德)》之銘言:
: ※ 引述《***@cd.twbbs.org ( )》之銘言:
: : 不要誤導人家,沒有import還是可以正常使用其他class or package
: : 只是你要寫全名
: : 正確的說 import對應到C++ 的 using namespace;
: : [Modified by adolf] From: 218.172.22.83 (2007/07/09 Mon 23:02:38)
: 這就叫誤導人家的話...嘖嘖
: 我只是把做法說出來罷了
: using namespace? 真要說的話
: 他有對應嗎?沒有吧
原則上
import 與 using 真的是比較類似.

反而 import 與 include 是沒有啥關係的東西.

在java 中沒有需要把 declaration 和 definition 分開
的做法 (你也可以想成 declaration 與definition
共存在 .java 內). 所以只要你要用的 class 在
classpath 內, 你就能用.

: using namespace 你還是得把檔案include進來你才有那個namespace
: java他所指的是資料夾路徑
: 不然萬用字元 * 幹麻用的?
: 難道using namespace就可以 * ?
: using namespace *;
: 這啥語法?
: 使用命名空間小菊花嗎?!
你大概不懂得 C++ 吧

import foo.bar.*;
大概就等於
using namespace foo::bar;

當然當中還是有點分別. 用了上面的
using directive, C++ 中是連 foo::bar::anotherlevel::MyClass
也可以直接以 anotherlevel::MyClass 來表示.
Java 的 import 只對應import 的那一層package 而已.

再給你多一點提示.
假設有一個 class foo.bar.MyClass
我在別的地方用到. 我不需要 import, 只要在 classpath
中它有存在, 我就可以

foo.bar.MyClass myObj = new foo.bar.MyClass();
正如 C++ 中, 我一樣可以不用 using namespace, 直接用
foo::bar::MyClass myObj;

看出兩者的關係了嗎?

: 噗
: 你這樣說才是誤導別人吧?!你這麼說後,如果有一本書叫我們建立資料夾並且把
: 他寫的java放進去,你又怎麼說?
: 難道你想說 "這是褻瀆神明的罪啊!!java是我的神!"
: 你這樣不過是把java放在電腦前面供奉的人
完全看不明白你在寫什麼. 好像胡言亂語似的.

: 你會寫套件嗎?看樣子不會
: 你寫C/C++有在自己寫標頭檔,類別嗎?
: 看來沒有
我本身前一份工作五年都是在寫 C++.

: 只把include風一樣的吹過
: 或者說你是VC6的受害者
和 VC6 的關係是什麼? 這是基本的 C++ 知識而已

: 我的說法跟做法都是有經過我本身,以及老師實做過,同學實作過
: 然後求證的
明顯你對於 include vs import vs using namespace
的求證出錯了.

: 也許啦,你說的是inner class的inner class ... 而不是像我原本說的
: 找"一個" class 、 package ...
: 只是人家提的問題還有圖片你有點下去看嗎?
: 沒有多方求證以及實驗就下定論,還想要反駁一個實做過的結果?
: 你的等級很低,從你簡單的發文看的出來
: 這小子戰鬥力大概5左右,嘖嘖...
要是他是 5, 閣下大概是零點幾吧?

: 他不過是類似namespace
: 你的反駁有如下不成立:
: using namespace必須在這個namespace存在的條件下
: 如果要用別人寫好的namespace,事先一定得先include別人的檔案
: include檔案,你得知道這個資料夾在目前檔案的哪個相對位置
: 一樣的你把那些 package、 java、class ...套件殺掉看看
: 檔案都沒了你哪裡來的namespace?
我想你不夠明白 package 與 namespace 與 classpath
的關係吧..

: 我很想質疑你有沒有碰C/C++的經驗
: 該不會還停留在-以為include 不是一種找檔案的動作吧
: include 是 preprocessor instruction,使用尖括號表示
: 他得先到環境設定的函式庫去找這個檔案
這個算對.

: java的import也是一個找檔案的動作啊
這個不是

: 如果要說的話,你怎麼不說他是一種external的import?
: external有分為定義跟宣告,定義的external的cpp檔就算是被export
: 同資料夾下的檔案都看的到那個cpp檔用extern宣告的函式、全域變數
: extern在別的地方使用不就是一種import
: 標準函式庫就做到了把crt.lib裡面以及msvcrt.dll的標頭檔給import進來的動作啊
: 他就extern了那些函式跟類別
說一堆其實你自己還是不明白 import 做的是什麼.

: 我碰過很多重考生,他們也許是因為太老氣了,或者封閉太久了
: 很會自以為是,只會出一張嘴,出的建議都是偉大無比的
: 比如說今天有一個活動,需要無限流量的網路資源
: 就會有一個重考生說
: "那就去計中跟他們要一台電腦啊,甚至跟他們主管要一個沒限流量的IP"
: 笑死人大牙
: 或者要同學去想一個演算法 ok
: 有一個重考生也是很自以為是的說 "阿就這樣算一算就出來啦"
: 然後老師糾正了還是在那狡辯。
: 一整節課有大部分的時間都花在他的狡辯上
: 這種重考生...只覺得自己那種偏隘的想法是全面性正確的
: 就只好當成笑話來看
: 你是要讓我笑的嗎?還是認真回答的?
其實閣下比較像封閉太久, 然後回罵別人但是讓別人笑話的樣子...

Alien


--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 202.22.246.26
※ 編輯: adrianshum 來自: 202.22.246.26 (07/10 11:41)
艾斯寇德
2007-07-10 05:06:36 UTC
Permalink
: 其實閣下比較像封閉太久, 然後回罵別人但是讓別人笑話的樣子...

見笑了 ...


--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.127.209.65
艾斯寇德
2007-07-11 00:48:13 UTC
Permalink
※ 引述《iFEELing (ing)》之銘言:
: ※ 引述《sunneo (艾斯寇德)》之銘言:
: : 標題: Re: [工具] 怎用import SWT呀
: : 時間: Tue Jul 10 13:06:11 2007
: [站內]
: : --
: : The Complain Programing Language ...
: : .......頭一個回文頭一個被鞭....就是沒人回應原po問題
: : ...你們最棒,你們最行,你們都是高手,我只是個封閉在C/C++的自閉兒
: : 我只是個嫩咖...只是一個會寫一堆套件一堆類別,用組語寫作業系統的嫩咖..
: : ...
: 不要以為用黑字罵人沒人看的到。

這樣都被看到啊

我有罵到人?
如果要說我是一種人的話也好
我跟人有著is a relationship

算哩... -3-




--
 ~( ̄▽ ̄)~(_△_)~( ̄▽ ̄)~(_△_)~( ̄▽ ̄)~ /來抓我呀 科科
※ 編輯: sunneo 來自: 59.127.209.65 (07/11 08:48)
骨頭
2007-07-11 07:50:16 UTC
Permalink
※ 引述《Astroboy0803 (Drucker)》之銘言:
: 在圖書館借了本書,目前再寫到用swt元件,我想說先按書打,然後再來了解(之前上課只
: 教awt和swing,所以這部份比較不熟),但我打第一行他就出錯了,有人可以告訴我是
: 怎麼回事呀!還是說我還要設定什麼嗎?
: http://www.javaworld.com.tw/jute/upload/2007/07/09/78040861.jpg
: 看圖就知道,他底下都會有紅色的標示,就連程式我也是用課本範例直接貼上的,我不懂
: 為什麼會有錯!課本是有說打什麼引數,但我造打還是有錯,還是說要依自己的版本呀!
: 可以請熱心的鄉民教教我嗎?我找了一整天了!

簡單來說你的classpath裡面沒有
org.eclipse這個類別

所以無法import , 也無法使用。


參考這篇文章看看~_~
http://big5.yesky.com/b5/www.yesky.com/26/1863026.shtml

--
 ▄▅▆▇███▇▆▅▄▃        ╰┼╯─╮ ╮       
 ◥███████████◣       ╰┼╯=│=│         
◥██████───────◣    *. ╯  ╯ ╯  物 語 .*
 ◥███████──────◣ ~ ◢◣             ◢◣
 ◥██████───────◤   ◥◤*  空白的世界.翼 *◥◤
  ◥██▁▂▃▄▅▆▇███▆▅▄▃▂▂~telnet://tony1223.no-ip.info

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.134.27.68
愚人
2007-07-12 04:46:32 UTC
Permalink
※ 引述《Astroboy0803 (Drucker)》之銘言:
: 謝謝各位的幫忙,綜合個位的觀點,再加上我同學的幫忙,我已經可以使用了!!
: 我的做法是直接將eclipse裡面的某個.jar的檔案放到我jre下的lib裡面的ext資料夾裡
: ,然後就可以用了^^

eclipse 的話你可以在專案下新增一個 lib 資料夾

然後把 swt.jar 複製貼上到 lib 內

Loading Image...

再按右鍵,把 swt.jar 加到 build path


這樣做你在 export 專案時 .jar 才可以一起打包

寫 ant 時,才不會出現許多絕對路徑 :)

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.128.219.202

Loading...