<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    gr8vyguy@Blogjava

    意義非凡的SWTSwing項目

    SWTSwing是由Christopher Deckers開發一個開源項目,目的是將SWT移植到Swing上面。初看這個項目感覺很搞笑,仔細一想,如果這個項目成功了,意義不小。想像一下,那時候你用SWT開發的Java程序的界面就可以是原生的(真正的原生,而不是模擬的),可以是Motif的,Metal的,或者任何一種Swing的LookAndFeel。

    SWTSwing的項目網址是http://swtswing.sourceforge.net

    下載他的程序包,解壓后可以運行SWTSwingSnippetLauncher.jar,看到如下窗口

     

    在Look And Feel文本框里輸入不同的LookAndFeel類,就可以用不同的LookAndFeel啟動左邊樹形框里選擇的程序。

    比如用javax.swing.plaf.metal.MetalLookAndFeel啟動ExpandBar


    用Sun的Windows LookAndFeel類com.sun.java.swing.plaf.windows.WindowsLookAndFeel


    com.sun.java.swing.plaf.motif.MotifLookAndFeel


    如果你指定SWT的Jar路徑,即用原生的控件庫,首先在上面的Combo里面選擇SWT,而非SWTSwing,在Class-Path里輸入你的swt.jar的路徑,比如我的C:\Java\tools\swt.jar


    目前SWTSwing的版本是3.2,Eclipse,Azureus,RSSOwl等著名的基于SWT的程序已經可以在SWTSwing上跑了,76%的SWT網站上的Snippets也可以運行。

    當然這樣兩層的嵌套,不可避免的會影響程序的性能。

    posted on 2007-05-03 13:44 gr8vyguy 閱讀(2876) 評論(19)  編輯  收藏 所屬分類: Java

    評論

    # re: 意義非凡的SWTSwing項目 2007-05-04 03:24 BeanSoft

    呵呵, 我是用他這個包來學習 SWT, 因為一點擊就能運行, 還能看代碼, 真的很不錯!  回復  更多評論   

    # re: 意義非凡的SWTSwing項目[未登錄] 2007-05-04 06:31 Roger

    “就可以是原生的(真正的原生,而不是模擬的)”
    你好像說錯了,應該是:就可以是模擬的(真正模擬的,不是原生的)
    SWT是原生,swing是模擬的。
    其實使用swt做桌面應用,為什么不用c#來做呢?我覺得swt既沒有swing的跨平臺,又沒有c#的本地化,swt沒有自己的特色。  回復  更多評論   

    # re: 意義非凡的SWTSwing項目 2007-05-04 09:04 Pande

    @Roger
    我的意思是說,有了SWTSwing,用SWT寫的程序,即可以用原生的界面,也可用Swing模擬的界面。這才是SWTSwing的意義所在。

    SWT確實走的是Swing和C#之間的一條路線,這就是SWT的特色

    SWT不如Swing那樣跨平臺,但是跨平臺性能還是很好的,也足夠。

    "沒有c#的本地化", 這我不同意,SWT和C#同樣都是對Windows API的封裝,沒有本質的區別  回復  更多評論   

    # re: 意義非凡的SWTSwing項目[未登錄] 2007-05-11 10:31 Roger

    @Pande
    你說:"沒有c#的本地化", 這我不同意,SWT和C#同樣都是對Windows API的封裝,沒有本質的區別

    不好意思,我覺得你對C++和c#并沒有做深入的研究。  回復  更多評論   

    # re: 意義非凡的SWTSwing項目 2007-05-11 11:02 Pande

    @Roger
    能否請你具體點說說,你指得深入的研究是什么?  回復  更多評論   

    # re: 意義非凡的SWTSwing項目[未登錄] 2007-05-11 11:51 Roger

    簡單的舉個例子,c#可以直接調用dll、com、windows APIs、active X、windows的鉤子和注冊表等,而swt不通過第三軟件包和jni,這些都可以做到嗎?或者說只使用官方swt版本這些事情都可以做的很好嗎?  回復  更多評論   

    # re: 意義非凡的SWTSwing項目 2007-05-11 12:16 Pande

    @Roger
    SWT對Windows原生功能的封裝當然不如C#全,但這只是量的不同,不是質的不同。所以我說沒有本質的區別。  回復  更多評論   

    # re: 意義非凡的SWTSwing項目[未登錄] 2007-05-11 12:29 Roger

    我且不說它們調用的方式有沒有質的區別。
    我想說,量變會引起質變,你覺得有1塊人民幣和有1億人民幣之間只有量的區別嗎?  回復  更多評論   

    # re: 意義非凡的SWTSwing項目 2007-05-11 12:40 Pande

    @Roger
    既然你說到了注冊表,我就拿它當一個例子。

    SWT是沒有封裝Windows注冊表的讀寫操作,象C#中那樣爽的Microsoft.Win32.Registry類包。但是在SWT實現這樣的工具類包是很容易的,
    RegOpenKeyEx, RegQueryValueEx等等幾個操作注冊表的函數在SWT的OS中都已經實現了,我想C#也是使用這些Windows API實現的。

    當然使用這樣的功能,無疑迫害可移植性。這也是SWT的官方包沒有包含你所舉的這些功能的緣故。

    SWT已經用org.eclipse.swt.ole.win32封裝Active X的使用,你完全可以在SWT中使用Active X。很多Windows API都已經在OS中實現接口了,Java和Windows之間的數據傳遞大多都已經實現了,連CallBack函數也能用SWT的Callback類輕易做到,SetWindowsHookEx函數你也可以在SWT中直接調用,但是由于全局鉤子要放在獨立的dll中,當然還得借助jni,但是實現并不困難。COM和Active X是不是一回事?我就不是很清楚了。  回復  更多評論   

    # re: 意義非凡的SWTSwing項目 2007-05-11 12:44 Pande

    @Roger
    SWT和C#是1塊人民幣和1億人民幣的區別嗎?

    最多也就是9000和10000的區別(而且還是單單考慮Windows平臺下)。

    如果考慮跨平臺的因素,那就是20000和10000的區別。  回復  更多評論   

    # re: 意義非凡的SWTSwing項目[未登錄] 2007-05-11 13:54 Roger

    @Pande
    你覺得:最多也就是9000和10000的區別(而且還是單單考慮Windows平臺下)。
    我舉個例子:一個系統原來是用c++開發的,或者現在開發一個系統其部分模塊是c++開發的(現實中是很多的),有大量dll和com,現在需要用改造或開發新功能,你覺得用swt和c#沒有本質的區別嗎?如果你用swt,需要給每個dll都寫jni,如果是c#,那么就一個都不用寫,如果dll有未知數量個,你覺得是多少和多少的區別?世界上有多少個dll和com你數的清嗎?

    你覺得:如果考慮跨平臺的因素,那就是20000和10000的區別。
    我比較的是windows下,跨平臺的swt比不上swing。跨平臺和可移植性不在我想討論的范圍之列。

    注意:我想反駁的你的觀點是,
    "沒有c#的本地化", 這我不同意,SWT和C#同樣都是對Windows API的封裝,沒有本質的區別  回復  更多評論   

    # re: 意義非凡的SWTSwing項目[未登錄] 2007-05-11 14:10 Roger

    active X是建立在com之上的。  回復  更多評論   

    # re: 意義非凡的SWTSwing項目 2007-05-11 14:18 Pande

    @Roger
    如果要大量再利用C++的遺留dll,用Java確實不合適。我之前只考慮了重新開發這一塊。

    但,即使考慮到遺留系統,你也可以再利用現有系統的功能,把所有你要用的功能封裝在一個Dll里,SWT就是這么做的,Windows API也不是只有一個dll。你不需要為每個dll寫JNI。

    假設你確實需要能訪問現存的每個dll里的每個函數的話,目前的Java確實沒有提供很好的支持。

    對遺留程序的支持是每門新語言都要面對的問題,Java不新了,這個問題我相信有很多人討論過。C#之于C/C++能做到的程度,難道Java就做不到嗎?雖然我沒研究過這一點,但是我相信是可以做到的。如果要做到的話,我相信必須走SWT這條路子,而不是Swing的模擬路線。  回復  更多評論   

    # re: 意義非凡的SWTSwing項目 2007-05-11 14:40 Pande

    @Roger
    另外,我想請教,假設你設計一門很成功新語言,要為它開發一套窗口界面控件庫,你會選擇Swing的路子還是SWT的路子呢?

    >>> 注意:我想反駁的你的觀點是,
    >>> "沒有c#的本地化", 這我不同意,SWT和C#同樣都是對Windows API的封裝,沒有本質的區別

    看了你的回帖,我承認目前的Java+SWT是沒有100%的C#的本地化,但是相差不是很大。而且不是做不到,而是Java沒有向這個方向發展。這也是SWT出現最大的意義所在。  回復  更多評論   

    # re: 意義非凡的SWTSwing項目[未登錄] 2007-05-11 15:27 Roger

    說實話,我沒有能力去設計新的語言。
    但我覺得選擇那條路完全決定于操作系統,在windows下面大多語言都比不上微軟自己設計的語言,delphi是很優秀的,但是相比之下,它的結局就比不上c++,perl很優秀,但是它就比不上c,所以如果我要設計一門語言,我不會只考慮在windows下面運行,如果在其它平臺下面運行,那么我一定會考慮平臺一致性。
    微軟的操作系統是非常不錯的,但是不表示它是完美的,只要它不是完美的,那么就會有其它系統的生存空間,如果有其它系統的生存空間,那么它的系統就需要好的語言。只要系統還存在,那么這樣的好語言就會有它存在的價值和存在的理由。  回復  更多評論   

    # re: 意義非凡的SWTSwing項目 2007-05-11 15:59 Pande

    @Roger
    看來你還是保持要么Swing,要么C#的觀點。我還是選擇SWT的中庸之道。

    不管怎么樣,和你的討論還是獲益匪淺。  回復  更多評論   

    # re: 意義非凡的SWTSwing項目 2007-07-10 15:32 阿南

    我還是覺得SWT離開了Eclipse就是個四不像的東西了~SWT出現就是了為了Eclipse的本地化和高速度的~還有締造了Eclipse的簡單的平臺平移。  回復  更多評論   

    # re: 意義非凡的SWTSwing項目 2007-07-11 00:11 Pande

    @阿南
    每次有人說SWT的好話時,總會有人出來反對。好像這也是一股潮流。爭論太多也沒意思。  回復  更多評論   

    # re: 意義非凡的SWTSwing項目 2007-07-13 03:23 三告習習

    情人眼里出西施。
    程序員都會有自己的語言和語言中的某種技術。
    很多時候的喜好爭辯沒有多大意義吧。
    我說你女朋友很漂亮是表示我很羨慕你有這么漂亮的女朋(除了客套話吧,呵呵)。
    我說你女朋一點的不漂亮有什么意義呢?或許我說的也比較客觀,但是,你喜歡她的不是別人眼里的漂亮或者不漂亮吧。
    如果你覺得漂亮是最重要的,那么你努力成為大款......
    就像,即使你說的C#,delphi很好,但是我對C#,delphi不熟悉,我要使用它,也得拼死命扎在C#,delphi資料中。但是,我的熟悉swt呢?我喜歡的是她,我還想再深入下去,我也還得花時間,我干嘛非要拋棄swt來選什么C#啊,swt又不是沒落了。
    能有SWTSwing這樣的東西給swt添加點色彩總是不錯的,呵呵,即使沒有,也不是什么大問題。我選擇swt不是為了去玩SWTSwing。  回復  更多評論   

    <2007年7月>
    24252627282930
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    導航

    統計

    公告

  • 轉載請注明出處.
  • msn: gr8vyguy at live.com
  • 常用鏈接

    留言簿(9)

    隨筆分類(68)

    隨筆檔案(80)

    文章分類(1)

    My Open Source Projects

    搜索

    積分與排名

    最新評論

    主站蜘蛛池模板: 18禁网站免费无遮挡无码中文| 亚洲va久久久噜噜噜久久天堂| 日本视频免费高清一本18| 亚洲国产AV无码一区二区三区| 亚洲韩国—中文字幕| 亚洲精品麻豆av| 日韩成全视频观看免费观看高清| 亚洲一级免费毛片| 中文无码成人免费视频在线观看| 特级av毛片免费观看| 亚洲日韩AV一区二区三区四区| 亚洲老熟女@TubeumTV| 亚洲AV综合色区无码一区爱AV | 国产亚洲精品观看91在线| 又粗又黄又猛又爽大片免费| 国产精品免费观看久久| 最近免费中文字幕大全免费| 大地资源网高清在线观看免费| 一级一黄在线观看视频免费| 看全免费的一级毛片| 亚洲av永久中文无码精品| tom影院亚洲国产一区二区| 亚洲欧洲春色校园另类小说| 亚洲高清免费在线观看| 久久久久亚洲av无码专区喷水 | 日韩电影免费在线观看网址| 亚洲av无码专区在线电影| 亚洲真人无码永久在线观看| 亚洲一区二区三区四区视频| 亚洲理论片在线中文字幕| 亚洲熟妇无码久久精品| 亚洲国产高清视频在线观看| 亚洲成在人线电影天堂色| 亚洲国产人成在线观看| 久久精品国产亚洲av麻豆图片| 亚洲国产精品线观看不卡| 亚洲av无码片在线观看| 亚洲国产视频久久| 久久精品国产亚洲AV| 全部在线播放免费毛片| a级毛片免费网站|