Java桌面技術

          Java Desktop Technology

          常用鏈接

          統計

          友情連接

          最新評論

          打造專業外觀-九宮圖

              長久以來,Java被認為是服務器端的佼佼者,而在客戶端方面不被看好,特別地MicroSoft的Windows系列幾乎壟斷了桌面應用。所以在大多數人看來只要一提起開發客戶端,首先想到的是VB、Delph。拒絕Java的原因無非是速度慢、Swing外觀丑陋這2點。對于前者已經成為歷史了,而對于后者,抱怨Java設計的界面丑陋的那些人一定桌面開發經驗淺顯、或者只會依賴VB那種托拽生成組件的那些非高手。再有可能就是傳統桌面開發員中的VB忠實fans,他們不愿意接受新東西。其實目前而言,Java開發桌面應用不僅能將上述缺點消除,Java最重要的是能夠跨平臺運行,這是其他語言不能達到的,如果客戶端使用VB開發的話,那么還可能要考慮系統其他部分的開發是否也要用VB或者微軟支持的產品。目前用Java語言開發的客戶端已不少見,IBM Lotus旗下的Sametime系列就是很好的例子,雖然其7.5已經將界面全部改為SWT實現而不再是AWT,但至少能說明Java作為桌面開發絕不是弱者。而且調查顯示Visual Basic開發用戶直線下降。詳見http://blog.sina.com.cn/s/blog_4b6047bc010006v9.html

              對于一般界面需求而言,簡單的桌面組件完全可以滿足用戶的需求,這些簡單至極的組件已經被集成進組件托盤中了,如果你用netbeans或者安裝Eclipse的VE插件,完全可以只通過托拽的方式將組件生成并放置在指定的地方。至多需要你對常用布局管理器有少許了解。但是單憑這些現有的玩意很難打造出專業的外觀。比如一個頂層窗口,如果你用swing組件庫中的JFrame或SWT中的Shell,那么它的外觀充其量和本地的外觀一致,這個本地化外觀有窗口的標題欄,標題欄文字出現的位置,Windows是圖標左對齊,Solaris是居中,和默認的最小化、最大化、關閉等按鈕。另外還有固定尺寸和外觀的邊框,盡管在Windows Vista中這些元素已經很美觀,但是某些軟件如即時通訊類軟件,美工一定會單獨設計出一套截然不同的外觀叫你去實現。就拿一個窗口來說,如下圖:

          我從事Java桌面相關的工作有1年半了,起初我依賴JButton、JScroll等基礎組件,BorderLayout、FlowLayout等現成的布局管理器企圖能實現類似MSN的外觀效果,但是實際看來是完全不可能的,所以我當時就下了這樣的結論,哪怕現在我依然認為是正確的:“拋棄所有的外觀設計工具和一切現有的桌面組件及布局管理器,一切的一切必須自定義實現,設計工具最多能替你完成一半”。所以當時界面部分的代碼是我一行一行寫出來的,為了不做重復的勞動,定義了不少組件如Button,CheckBox,ComboBox(參見用SWT實現MSN風格的下拉框)、Slider(參見SWT自定義組件之Slider)。
          布局管理器完全不用,因為它會給你的組件布局帶來很大限制。取而代之的是為容器組件添加ComponentListener監聽器(SWT的實現是ControlListener)。
          下列是我基于這個理念開發的界面截圖。







              
              



              
              作為打造專業外觀的第一步,應該學會如何去分解。介紹一種常見的分解方法——九宮格。如下圖所示


          九宮格的設計思想是將組件分成9個組成部分,四個邊、四個角、中心部分作為內容放置其他組件。為了敘述方便,這9個部分依次取名為northwest(左上)、northeast(右上)、north(北)、southwest(左下)、southeast(右下)、south(南)、west(西)、east(東)、content(中心內容窗格)。
          這9個部分的布局不難理解,例如northwest始終位于左上,無論窗口大小如何變動northwest都不會改變大小和位置;同理northeast始終位于右上位置;而north的左邊緊貼northwest的右端、右邊緊貼northeast的左邊,所以north的長度計算應該是窗口的長度減去northwest和northeast的長度之和。同理,剩下幾部分的布局不難計算。
              還有一點是很重要的,如果你是用SWT組件,務必把Shell的樣式設置成SWT.NO_TRIM,也就是說這樣的頂層窗口沒有標題欄和邊框,一些由你來修飾。如果你用Swing,請使用JWindow而不是JFrame,道理同上。
              雖然上述實現界面程序是用SWT編寫的,但是不代表SWT很強大,Swing才是王者,你可以這樣理解,SWT這樣的怪胎都能做出如此效果,Swing更沒問題了。
              參考程序這里下載

              本文只是介紹了九宮格的概念,在實際開發中可能需要對九宮格分解法進行擴展,比如在九宮格的基礎上再分解,粒度由你來掌握。演示程序窗口只是簡單地實現了邊框和內容窗格的渲染,不能拖拽移動和改變尺寸、沒有標題和功能按鈕,如果你仔細看還會發現邊角沒有被抹去,也就是說被有實現圓角窗口,這些功能會在后續的文章中一一介紹如何實現。

              至于上面所說UI代碼一行一行寫出來,是有些費事,對于這個問題我的看法是這樣的:某些界面是不需要花大力氣渲染的,比如說配置界面,沒有哪些客戶端要求那種界面也強調很酷的外觀,所以對于簡單的界面,可以借助工具生成代碼,必定工具還是可以幫你做50%的事情。第二就積累一些組件庫,比如自定義一些可重用組件,就像前面介紹的ComboBox和Slider,如果不能完全重用,至少可以將代碼作為模板,少許改動就可變成另一套外觀風格,研讀前面介紹的ComboBox和Slider你會發現替換里面的圖片或顏色常量就可輕松換膚,如果你的UI是基于swing的,那么你可以自定義L&F來實現基本的外觀,關于L&F后面定會花大量時間整理出完整教程。第三就是利用配置的方式將UI組件的生成和布局從.java中移出來,這樣不僅可以省去大部分代碼量,而且配置文件簡短易讀的特點是眾所周知的,Java Web項目的web.xml就是很好的例子,Spring就更不用說了。配置方式后面也會介紹。第四點,如果你只會VB、VC那種拖拽式開發,那你永遠算不上高手,我曾經用MFC寫程序時抱怨過“有那么多按鈕卻看不見一行CButton聲明”,那會使你永遠不了解底層是如何實現的,所以我不喜歡那種方式,如果你有能力,完全可以寫一個Framework封裝你的UI組件,配置生成的方式就是一例。

              今后還會寫大量關于Java GUI方面的帖子,并且會和Sun工程研究院的陳維雷先生合作發布L&F技術貼,他的博客https://blogs.oracle.com/Swing/想必大家很熟悉了。雖然當今的web2.0時代人們很少關注C/S應用,但是一些高端應用仍舊采用C/S模式,瀏覽器這個通用客戶端能做的事還很有限。而且Sun也開始向桌面進軍,JDK1.6的進步就能很好地說明這一點,更另人興奮的是Java桌面技術有添加了一個新成員——JavaFX,又有好消息稱JDK7.0中的AWT將加入不規則窗體和半透明窗體的支持,希望有一天Swing能壟斷桌面。

          posted on 2007-11-03 17:56 sun_java_studio@yahoo.com.cn(電玩) 閱讀(18207) 評論(45)  編輯  收藏 所屬分類: NetBeansGUI Design

          評論

          # re: 打造專業外觀-九宮圖 2007-11-03 19:29 eddie

          樓主太強大了。拜一個。
          由于是Linux程序員出身,對GUI程序的設計一竅不通。最近正在自學,樓主給點建議罷。我覺得GUI程序如果真要自己寫的話,太費時間了。可是用可視工具畫的話,又感覺不理解原理,心里沒有底氣。  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2007-11-03 22:31 BeanSoft

          頂了! Office 啊, IM 啊, 說白了都是自定義組件, 自己畫圖. 游戲嘛, 也算是一種了. 樓主 GUI 高手呵呵.

          如果仔細研究 XP 的換膚(桌面主題), 你也會發現是九宮格的布局, 一張圖, 但是畫的時候切成9塊. 一個按鈕需要6個圖.  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2007-11-03 22:53 Matthew Chen

          看樓主的文章,一時豁然開朗,gui原來可以是這樣的,以前也下載過很多軟件,最近才慢慢開始注意界面布局的特點和提供用戶體驗方面的東西,感覺歐美軟件逐漸在界面上追求簡單和易用,ComponentListener的思想有時比布局管理器容易和適合開發的需要。
          樓主提到Java已經可以在桌面應用領域挑戰C/C++,VB,Delphi等等,但是這類工具生成的是編譯型的機器代碼,具有高的執行效率和借助平臺特有優勢,盡管Java跨平臺,又有JIT即時解釋器在一定程度上提升運行速率,但是否語言級別和平臺級別的一些瓶頸會成為它開發上的局限性呢,比如,我現在涉及對數據的壓縮解壓和即時取用,要求高響應的速度,我想可能的突破是好的算法實現,而這一層面上對數據結構的要求相對獨特——針對位的操作,而Java的基本數據類型中,幾乎是基于字節的,boolean在底層數據實現上也不例外(希望我沒理解錯),這在實現很多算法上并不理想,不知樓主的意見如何?
          說到swt,我也先學了點swing再來學的,如果有說的不對的請指出,除了無法獲得jdk的標準集成支持外,swt可以說在各個方面都勝過awt,之所以說awt是因為二者的實現是相似的對等體思路,swt在這方面作得很好了,那可以假設swt和awt在速度上是同一級別的東西,如果IBM現在搞基于swt基礎之上的純繪制桌面應用,就相當于在swing的同一級別之上,這方面IBM沾上邊的象GEF,Draw2D可能有點聯系吧,它有可能作到類似swing的程度和規模嗎?就算不行差一點,但保持相同的速度級別我想還是有很大作用的,比較一下:awt是弱的,但基于其之上的swing是繪制一切無所不能的;swt是強的,而在其之上作為補充的純繪制api也能成為其補充,在我看swt的介紹時看到這一句,對平臺缺失的組件用Java繪制,這種繪制指的其實是用平臺已有的swt組件進行組合獲得復合控件,我看過eclipse Nebular項目,主要的自定義控件思想也是這樣的,它一方面基于高效的本地控件來復合,同時也可能引入本地控件的問題。但是就現階段來說,sun對swing的支持還未全面鋪開到最關系用戶切身體驗的范圍,舉我上次評論說過的JFileChooser,速度和awt是秒和毫秒的差距,當然,這是可以通過編程手段來忽悠用戶的,比如開個線程,在打開的第一時間在后臺創建備用,就比如jdk demo中的swingset2的方式,但是,這比較讓人難以接受,我只為了提供一個讓用戶選擇路徑的控件,用完就扔掉的東西,卻不得不忍受全繪制界面帶來的時間延遲,真的很不值得。
          寫到這里,只感覺腦袋空空,好像成不了文章了,只是還是想和大家分享,希望有人能討論,希望想法沒有浪費。  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2007-11-03 23:07 sun_java_studio@yahoo.com.cn(電玩)

          @eddie
          初學JavaGUI,最好買一本專門介紹swing的書,O'REILLY系列的swing第二版就不錯,封面是猴子的那本。如果你想深入了解桌面開發,不要一上來就學SWT,除非工作需要,如果熟悉swing的話翻回來看SWT是毫不費力的。切記的一點是,初學Java GUI不要用任何可視化工具,道理就像沒學會走路就想飛一樣。  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2007-11-04 00:12 sun_java_studio@yahoo.com.cn(電玩)

          @Matthew Chen
          “樓主提到Java已經可以在桌面應用領域挑戰C/C++,VB,Delphi等等”,只是我的希望,我覺得可行是第一,除C++,VB、Delphi的開發者群會逐漸減少,而C++程序員不會把重點放在純粹的桌面開發,他們通常會借助VC++或C#那種拖拽工具來實現,基于此就會導致第二個問題。第二,Java的跨平臺,這是得天獨厚的優勢。
          至于Java性能的問題,我剛派到BEA工作時針對終端為什么采用Java語言問過技術高層,他們的解釋是:可以定一個性能指標,假設這個指標是1G CPU、256M內存,小于這個性能值的計算機運行C++時的性能會高于運行Java時的性能,大于這個值的話兩者的性能差距就很小了,甚至可以忽略。而且對于初級C++程序員很難寫出高效的程序,Java語言本身也利于寫出健壯的代碼,而C++要為諸如如何避免程序崩潰付出很多,總之swing能與VB等語言挑戰,很大程度得意于Java本身。

          至于SWT,我僅列舉2點最致命的弱點就足矣另SWT在Swing之下了。第一,SWT組件不是Java Bean,從構造函數可以看出必須要指定一個父組件,而這個限制對于實現模塊間的松偶合是很不利的。第二,SWT不支持皮膚。
          SWT中的Draw2D我了解的不多,但是見IBM官方說性能還不是很好,究其原因可能也是采用非本地調用組件,直接繪制造成的吧,和swing差不多了,但是這樣一來SWT在打造外觀來說可能會是個不小的進步。 至于IBM會不會將SWT提高規模,我看關鍵是有外界刺激,如果Swing變得很強大,那么IBM應該不會坐以待斃吧。你說的JFileChooser確實是swing的一大缺點,看Sun怎么看了,沒準JDK1.7會有所改觀呢:)。  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2007-11-04 00:15 Lf0x

          一向對 Swing GUI 很感興趣, 希望樓主多多分享一下開發經驗,^_^...  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2007-11-04 00:22 sun_java_studio@yahoo.com.cn(電玩)

          @Lf0x
          由于工作以來,GUI開發大多都是基于SWT,所以前幾篇文章多是SWT為主。后面的貼逐漸會轉到Swing。但是九宮圖屬于設計范疇,與如何實現沒太大聯系,其實網頁設計中的JavaScript里也經常用到類似的技術。  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2007-11-04 11:46 zhrb

          感覺挺不錯的
          不過swt也可以跨平臺嗎?
          印象中好像只有swing可以跨平臺  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2007-11-04 11:49 sun_java_studio@yahoo.com.cn(電玩)

          @歡樂豬
          對于大多數標準外觀應用,用Swing確實有點小題大做。SWT的特點就是簡單,簡單包含使用簡單和外觀簡單兩層含義,這也就決定了SWT并不會在短時期內消亡,何況它有Eclipse撐腰。但是即使用SWT,上述Demo,大多數是自定義組件,原因很簡單,就是原生組件不好看。  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2007-11-04 11:54 sun_java_studio@yahoo.com.cn(電玩)

          @zhrb
          SWT能跨平臺,但是我不敢保證效果很好,據說SWT在Linux上bug很多。SWT要實現跨平臺,可能要考慮更多東西,必須OLE可能就不兼容。能否支持某一平臺看一看能否在那平臺上運行Eclipse就行了。  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2007-11-04 11:58 BeanSoft

          SWT 是快是慢就不說了. 可是 Eclipse 自打2.1.3之后占用內存直線上升, 各位高人有沒有什么內幕告訴啊? 做項目的時候 Eclipse 2.1.3 的內存很少超過100MB, 但是 Eclipse 3.0, 3.1, 3.2, 3.3, 天啊, 內存占用直線上升. 至少說明一個問題: Eclipse 追求界面漂亮導致的就是程序的變慢和消耗資源.  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2007-11-04 12:09 sun_java_studio@yahoo.com.cn(電玩)

          @歡樂豬
          “如果是重載paint(Graphics),從零開始自己畫控件和處理事件,那么SWT和Swing是沒有區別的”。如果是真的,當初的項目就不會那么費事了,SWT的addPaintListener是無法將組件繪制成半透明效果的。而swing通過重寫paintComponent并去掉super.paintComponent。然后利用Graphics2D可輕松實現。
          總之,SWT實現專業外觀不合適,Swing是用來打造專業外觀的組件庫,我們開發的產品是IM即時通訊類終端,沒有專業外觀行么。Eclipse RCP看起來像Eclipse,如果客戶接受那套外觀,Eclipse RCP無疑是最適合的。
          再有SWT不是Java Bean,這個是很致命的。項目中被搞得很無奈,因此后來項目組決定放棄Eclipse RCP重新寫一套Framework。  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2007-11-04 12:11 sun_java_studio@yahoo.com.cn(電玩)

          @BeanSoft
          不僅Eclipse,netBeans、JBuilder哪個不是啊。Eclipse的慢不應該是界面導致。  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2007-11-04 12:18 sun_java_studio@yahoo.com.cn(電玩)

          給各位推薦一個博客,http://blog.sina.com.cn/swingjava。作者是Sun工程研究院的員工,對swing開發造詣非淺,他的觀點是很有說服力的,有關帖子發表在07年3月,希望不要在SWT、Swing之間再有什么爭執了。

          我的觀點是SWT適合大多數客戶的需求,Swing更適合打造專業外觀,高手更傾向于swing。  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2007-11-05 08:53 zht

          都是高手。。。
            回復  更多評論   

          # re: 打造專業外觀-九宮圖 2007-11-05 13:35 sun_java_studio@yahoo.com.cn(電玩)

          @歡樂豬
          那個Framework是中間件,因為對RCP程序強制實現SWT很不欣賞,由于SWT強制父組件的構造方法不容易使UI與業務分離,原因就是這樣。
          使用Eclipse RCP創建的應用外觀像Eclipse,JFace倡導Action生成ToolBar Button和MenuItem,這樣外觀是改不了的,如果硬要這樣也有變態的改法。netBeans RCP亦是如此。

          我最近除了寫帖還學習Equinox,打算以這個作為Framework,界面完全自己控制。

          聽說話語氣您是不是IBM的人呀,對SWT那么有自信?  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2007-11-05 19:04 歡樂豬

          @sun_java_studio@yahoo.com.cn(電玩)

          >>>由于SWT強制父組件的構造方法不容易使UI與業務分離。
          ------------------------------------------------------------
          相對來講,你是對的。只要有約束,就會增加耦合度。 但是, 這不是
          致命的,JFace里Viewer不就是很好的分離了業務嗎? 還有Eclipse
          中到處都是Adapter對分離業務也是一種靈活,有效的方式。
          只不過,這兩都不是用繼承的方式,而是采用Composition的方式。
          有的人可能不習慣。但是Composition是比繼承更安全的一種復用。

          你的DemoShell繼承了Shell。一般Eclipse中的做法會包含一個Shell,
          就像TreeViewer之于Tree一樣。當然一個明顯的缺點是,DemoShell
          就不能替代Shell。所以Eclipse很強調面向interface。這要講起來就長,
          就不說了。

          >>>界面完全自己控制
          其實你不用從Equinox開始, Equinox是一個Runtime,實現了Plugin的
          機制。完全可以用RCP, 你的Application里不要那些Advisor,自己啟動
          SWT的事件循環。這樣,你得到的就是一個Native的Shell,如果你連這個
          Shell都不滿意,就用Shell(NO_TRIM), 定義Region,相應事件。你想要
          什么樣的效果, 就可以做到什么樣的。只要你不怕麻煩。我覺得,只要你畫
          的出來(比如用Photoshop), 就能實現的了。

          Swing也好,SWT也好,界面編程,我更加看好像.net3.0的MXML和Flex的
          那個什么XML,更加declarative. 已經有人基于SWT做了這方面的工作。

          我不是IBM的,工作中還是用Swing的多。

          出于對Eclipse的興趣和欣賞,才去研究SWT,以及和Eclipse相關的東西。
          也就是從今年3月份開始的,之前只是用Eclipse開發而已。我不光對SWT有
          信心,對Swing也很有信心。主要是對Java有信心。和.net不同,Java
          世界里往往有多種選擇,相互刺激,相互學習,共同進步。當然對什么都
          正不明白的人來說,太多選擇也是壞事,沒得選就不會錯了嘛。
            回復  更多評論   

          # re: 打造專業外觀-九宮圖 2007-12-03 09:24 zhou zhi meng

          樓主,您好,看了您用Java開發的界面截圖,正是太棒了,您能不能發份源代碼給俺,感激不盡!
          俺的郵箱:zzmccnu@163.com  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2007-12-04 10:14 sun_java_studio@yahoo.com.cn(電玩)

          @zhou zhi meng
          抱歉,以上若干IM軟件UI都是有版權的,源碼不能公開,包括程序用到的圖片。我能做到的就是將截圖展示出來,但是前面的一些有關自定義組件的文章,包括本文已經將大部分實現介紹了,只不過刪減了部分代碼健壯性細節。
          后續還會有相關文章。  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2007-12-31 10:36 wǒ愛伱--咾婆

          支持...樓主啊...好東東..看得我心里個激動啊!  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2008-01-18 16:14 QQ:244943080

          樓主 .. 我找啦好久 終于找到啦  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2008-08-06 19:45 Ice Mark

          Java在界面設計方面一直抬不起頭,早就想為java出口氣了.  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2008-08-07 09:25 sun_java_studio@yahoo.com.cn(電玩)

          @Ice Mark
          前些日子和Willim chen見了次面,談到了Swing何時翻身,他作了這么一個比喻:著名畫家凡高,在世的時候作品一文不值,等他過世很長時間年人們才注意到。原因就是凡高的畫風和當時時代的現實主義很不融合。凡高的畫很超前,用現在的話說就是前衛,而當時美術界被達芬奇等現實派所壟斷,所以凡高在當時就是懷才不遇、不合時宜,結果下場就是瘋掉、自殺。
          這和Swing很類似,Sun公司于1997年Java One大會上公布了Swing和Java2D圖形組件,在當時來說是極其超前的。首先當時的用戶電腦性能、計算能力、JVM性能都不高,Swing這種畫出來的非本地組件會執行更多的指令來達到渲染、展現,這是性能方面;其二,Swing默認L&F是很丑陋,尤其在早期的JVM中更是如此,如果把Swing做得漂亮一點是需要成本的,而且還會另當時本來就不快的Swing更慢,當時Windows 95、98用戶習慣了Windows風格,用VB簡單的拖拽就可方便的編寫出比較美觀的Windows界面,而VB的組件庫比Swing標準組件豐富得多,即使Swing可以跨平臺,但是和Windows的壟斷比起來還是差遠了。
          不是Swing不好,只是時機未到。如今互聯網的速度、計算機的性能早已不是當時的情況,所以RIA時代來了,Linux、OpenSolaris用戶群多了,瀏覽器比再是IE一家獨占了,VB時代已去。Sun從未放棄過桌面,JavaFX SDK Preview發布了,Swing該翻身了。  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2008-09-01 21:20 Hunking 土著人

          向樓主學了兩招,花了兩天時間實現了這兩個布局管理器

          y = a*x + b 和 九宮布局

          不錯,算是真正的理解了布局管理器
          謝謝樓主  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2008-09-06 21:38 flame

          作為一個學生,我平時喜歡上網查找一些相關的編程技術,但是像作者這樣懂技術,有成果,又肯不惜賜教的人真的不多,希望能學到作者的更多的編程經驗.  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2008-10-28 12:06 sjzs1190@qq.com

          強人
          很想知道,九宮格的原理是你想出來的還是參考別人的。有沒有類似的書籍看看呢。
            回復  更多評論   

          # re: 打造專業外觀-九宮圖 2008-10-29 22:59 sun_java_studio@yahoo.com.cn(電玩)

          @sjzs1190@qq.com
          利用九宮圖實現專業外觀早就有了,在Flex中已經是官方解決方案了,在VB時代就有人用,就是很多人不知道而已。  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2008-11-07 11:43 游客

          樓主能不能用swing實現一個優美的界面,最好包括的東西全面寫。  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2008-11-09 14:22 sun_java_studio@yahoo.com.cn(電玩)

          @游客
          《FilthyRichClients》看完一遍了,特別是動畫和效果的部分,感覺借助TimingFramework和AnimatedTransitions作出漂亮非常之簡單,也有把書中提到的假想圖實現一遍的想法,等有時間吧。  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2008-11-20 09:02 952679745

          swing和swt在性能上的感覺就好象netbeans6.0和eclipse一樣,只不過現在的3。4版本確實差很多。不過整體上速度要比netbeans快很多

          啥時候翻身,不知道啊。現在在越多的開發中發現一個java程序,jvm,數據庫下來都一百多M,哎,太糟糕了,打算回到原始部落吧  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2009-01-07 00:31 shukae

          九宮格方法很簡單,只是UI入門小技巧


          >> @zhrb
          >> SWT能跨平臺,但是我不敢保證效果很好,據說SWT在Linux上bug很多。
          Swing和SWT在Linux都跑得很好好嗎!不要在人云亦云了!

          >>@歡樂豬
          >>SWT實現專業外觀不合適,Swing是用來打造專業外觀的組件庫,我們開發的產品是IM即時通訊類終端,沒有專業外觀行么
          用SWT就寫不出專業外觀,那是你的問題
          因為我在公司就用Swing和SWT寫出一模一樣的AP
          UI遠遠比你的AP複雜,對於畫面親切更加要求
            回復  更多評論   

          # re: 打造專業外觀-九宮圖 2009-01-07 17:22 風過

          但是我一直有個問題。。。
          當MS提出了毛玻璃效果之后,java如何實現,我一直困擾于此
          如果我想寫一套真正的透明組件,如何實現?  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2009-01-08 11:30 sun_java_studio@yahoo.com.cn(電玩)

          @風過
          《Java動畫、圖形和極富客戶端效果開發》該有的都有了。  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2009-06-29 13:54 希望的石頭

          Java的速度仍然不盡人意。大俠能否指點一下,如何將Java編譯成本地代碼??  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2009-07-23 12:25 發到

          寫的很不錯 能否把這幾幅圖的demo程序給我發一下嗎?謝謝 郵箱shijiyu00@sohu.com  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2009-08-31 13:23 freeman

          你的九宮格有些牽強,可以有更優雅,更符合習慣的方法解決布局!  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2009-08-31 13:31 sun_java_studio@yahoo.com.cn(電玩)

          @freeman
          九宮格算是一種解決辦法,不局限于語言。
          像FlexBuilder就支持這種布局,說明Flex早就開始采納了。  回復  更多評論   

          # re: 打造專業外觀-九宮圖[未登錄] 2010-03-24 16:43 ethan

          請問你是怎么對Swing中標題欄操作的,我好像去不掉標題欄啊  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2010-03-26 18:26 電玩

          @ethan
          標題是畫上去的,或者干脆就是一副圖片。  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2010-06-13 16:40 路過

          樓主的想法和Sun官方的想法是一致的
          Sun在這方面已經做得很好了,大家有興趣可以看一下
          高級Synth
          http://www.ibm.com/developerworks/cn/java/j-synth/  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2010-06-13 18:02 sun_java_studio@yahoo.com.cn(電玩)

          @freeman
          謝謝評論,那篇文章早就看過了,現在的趨勢是整個桌面應用正逐漸被Web和Mobile替代。美麗的外觀不是Swing做不到也不是Java做不到,而是大部分用戶已不關注PC桌面了。Java客戶端將在Android和Google下延續  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2012-07-31 23:31 chenzhihui

          你好,請問下博主有沒有聊天工具的ui源碼呢?
          現因為要做一個開源的webqq客戶端,要使用聊天ui,對于美工方面資源有點少,是否可以提供些呢?
          我的郵箱: 6208317@qq.com  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2012-08-22 11:24 sun_java_studio@yahoo.com.cn(電玩)

          @chenzhihui
          06年的項目,源碼我沒有留。
          iQQ開源是你發起的嗎?  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2012-11-17 21:32 chenyu

          能請教下 你圖中的table比swt table漂亮多了,是怎么做的  回復  更多評論   

          # re: 打造專業外觀-九宮圖 2012-11-19 14:44 sun_java_studio@yahoo.com.cn(電玩)

          @chenyu
          上述那個table嗎?貌似是沒渲染,就普通的SWT table。可能我當時對表頭做處理了吧。06年的代碼,忘了:<  回復  更多評論   

          TWaver中文社區
          主站蜘蛛池模板: 土默特右旗| 林州市| 南开区| 同江市| 晋宁县| 汤阴县| 龙游县| 南部县| 金山区| 广德县| 北流市| 墨脱县| 收藏| 浙江省| 夏津县| 青州市| 丰原市| 广宗县| 临城县| 扎兰屯市| 泰顺县| 阳城县| 西藏| 元朗区| 迭部县| 荣成市| 徐汇区| 格尔木市| 惠州市| 虎林市| 岗巴县| 佳木斯市| 喀喇沁旗| 通渭县| 永康市| 石林| 哈尔滨市| 仁化县| 广元市| 大兴区| 德化县|