2010-04-24 43 views
2

我對Java Swing使用了一些不同的外觀和感覺,但我並不真的很喜歡任何人,所以我經常最終定製它很多。有時候我在想如果寫一個自己的LaF(通過擴展現有的LaF)是一個更好的主意,但我並不知道。目前,我主要使用Nimbus,但是我改變了所有的顏色(變暗),並重寫了一些組件的外觀,比如sliders和scrollbars。我也主要定製所有的表格,我正在考慮改變一些其他組件的外觀。什麼時候應該爲Java Swing編寫自己的外觀而不是自定義一個?

什麼時候建議創建一個新的外觀而不是自定義一個?優缺點都有什麼?

即通過擴展Nimbus來定製Nimbus或創建一個新的Nimbus?

相關文章:Creating a Custom Look and Feel(舊)

回答

6

當它建議建立一個新的外觀和感覺,而不是定製一個?

  • 當你想如果你想擺脫「死贈品」,你的應用程序是一個Java應用程序(這是一個關心你的應用看起來真的幾乎一模一樣的各種主流移動平臺
  • 對於一些爲OS X用戶銷售商業軟件的程序員來說,Java在用戶中的代表性很差(這是不合適的,但這是事實))。

這裏是你必須要經過提升一點點可憐的JTable(這個博客後得到了由蘋果公司聘請的BTW的作者)的這種病的例子:

http://explodingpixels.wordpress.com/2009/05/18/creating-a-better-jtable/

有什麼優點?

可以使應用看起來幾乎完全相同(唯一的區別是字體呈現,從OS X到Linux到Windows稍有不同,但它可以做得非常接近,或者你可以使用「非AA」像素完美的字體,看起來完全相同)。

and cons?

  • 你的應用程序將不會有本地化的外觀。
  • 這是一項很多工作(Swing不太容易:它是某種過度設計,過於複雜的野獸,很難判斷它是「非常巧妙的設計」還是「難以置信的設計」)。

我已經寫了幾個自定義Swing組件尋找正是在Windows,Linux和(使用像素完美的字體)OS X,但我同樣不會寫一個完整的LNF。

+0

+1 - 好解釋 – 2010-04-25 03:49:13

+0

謝謝。最後幾行很有幫助。 – Jonas 2010-04-25 08:41:26

+1

+1,很好的回答!作爲在Swing之上編寫了定製L&F庫的人,我可以證明與之相關的許多痛苦。 – JasCav 2011-03-10 16:18:56

0

我不認爲,這是除了像泛泛而談這個問題的任何答案:

  • 時將更改應用到現有的外觀的努力感覺大於創建一個新的,或者當你想爲非技術原因創建一個新的外觀時,

0

編寫一個Java外觀並不是因爲心靈的模糊。這本身就是一種努力,這就是爲什麼我會說,找到適合您需求的預先存在的外觀可能更有效。

Kathryn Huxtable一直致力於實施Sea Glass Look and Feel,這一直是一項艱鉅的任務。它基於Nimbus,儘管Nimbus和它的Swing基礎並不像創建自定義外觀所需的那樣具有可擴展性。這意味着大部分代碼必須被複制並粘貼到子類中。在另一個項目上工作時,您可能不希望受到這種事情的追蹤。

Synthetica也是另一個預先存在的選項,我認爲它是相當皮膚的。

相關問題