我什么时候应该为Java Swing编写自己的外观而不是自定义?

Jon*_*nas 2 java swing look-and-feel

我为Java Swing使用了一些不同的外观和感觉,但我不喜欢100%的任何人,所以我经常最终定制它.有时候我在考虑编写自己的LaF是否更好(通过扩展现有的LaF),但我真的不知道.

目前,我主要使用Nimbus,但我改变了所有颜色(更暗),并重写了一些组件的外观,如滑块和滚动条.我也主要定制所有表格,我正在考虑改变其他一些组件的外观.

什么时候建议创建一个新的外观而不是自定义一个?优缺点都有什么?

即通过扩展Nimbus来定制Nimbus或创建一个新的?

相关文章:创建自定义外观(旧)

Syn*_*r0r 6

什么时候建议创建一个新的外观而不是自定义一个?

  • 当您希望您的应用在每个主要平台上看起来几乎完全相同时
  • 如果你想摆脱"死亡赠品",你的应用程序是一个Java应用程序(对于OS X用户销售商业软件的一些程序员而言,Java在用户之间有一个非常糟糕的代表[它是不应该的,但它是事实]).

这里有一个例子,你需要通过一点点来增强一点点可怜的JTable(顺便说一句,这篇博客的作者后来被Apple聘用):

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

有什么优点?

可以使应用看起来几乎相同(唯一的区别是字体渲染,从OS X到Linux到Windows略有不同......但它可以非常接近,或者你可以选择"非AA" "像素完美的字体,看起来完全相同).

和利弊?

  • 你的应用程序将没有原生的外观.
  • 这是很多工作(Swing并不是那么简单:它是某种过度设计,过于复杂的野兽,很难分辨它是"非常巧妙地设计"还是"令人难以置信的愚蠢设计").

我在Windows,Linux和OS X上编写了几个完全相同的自定义Swing组件(使用像素完美字体),但我不会编写完整的LnF.