簡體   English   中英

什么時候應該編寫自己的Java Swing外觀而不是自定義外觀?

[英]When should I write my own Look and Feel for Java Swing instead of customizing one?

我為Java Swing使用了一些不同的外觀,但我並不真正喜歡100%,因此我經常要對其進行大量自定義。 有時,我在考慮編寫自己的LaF(通過擴展現有的LaF)是否是一個更好的主意,但我真的不知道。

目前,我主要使用Nimbus ,但是我更改了所有顏色(改為較暗的顏色)並重寫了某些組件的外觀,例如滑塊和滾動條。 我還主要自定義所有表,並且我正在考慮更改其他一些組件的外觀。

建議何時創建新的外觀而不是自定義外觀? 優缺點都有什么?

是自定義Nimbus還是通過擴展Nimbus創建一個新的?

相關文章: 創建自定義外觀 (舊)

建議何時創建新的外觀而不是自定義外觀?

  • 當您希望您的應用在每個主要平台上看起來幾乎完全相同時
  • 當您想擺脫“死胡同”的想法時,您的應用程序是Java應用程序(這是很多為OS X用戶出售商業軟件的程序員所擔心的,在Java中,Java在用戶中的表現非常糟糕[這是不應該的,但是事實])。

這是一個例子,說明您必須經歷一點點疾病才能增強可悲的JTable(此博客的作者后來被Apple聘用):

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

有什么優點?

可以使應用看起來幾乎完全相同(唯一的區別是字體渲染,從OS X到Linux到Windows略有不同...但是可以將其制作得非常接近,也可以使用“非AA”像素完美的字體,看起來完全一樣)。

和缺點?

  • 您的應用程序根本不會具有本機外觀。
  • 這是很多工作(擺動並不十分容易:這是一種過度設計,過於復雜的野獸,很難分辨它是“設計得非常聰明”還是“設計得非常笨拙”)。

我已經編寫了幾個自定義的Swing組件,它們在Windows,Linux和OS X上看起來完全一樣(使用像素完美的字體),但是我不會編寫整個LnF。

除了以下一般性問題,我認為該問題沒有任何答案:

  • 當將更改應用於現有外觀的工作量大於創建新外觀時,或

  • 當您出於非技術原因要創建新的外觀時。

編寫Java外觀並不適合膽小者。 這本身就是一種努力,這就是為什么我要說,找到適合您需求的既有外觀可能會更有效率。

Kathryn Huxtable一直在努力實施Sea Glass Look and Feel ,這是一項艱巨的任務。 它基於Nimbus,但是Nimbus及其Swing的基礎並沒有創建自定義外觀所需的可擴展性。 這意味着必須將許多代碼復制並粘貼到子類中。 在進行另一個項目時,您可能不想被這類事情所困擾。

Synthetica也是另一個預先存在的選擇,我認為它非常適合皮膚使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM