2

私はJavaSwingにいくつかの異なるルック・アンド・フィールを使用しましたが、100%の人はあまり好きではないので、多くの場合、カスタマイズすることになります。(既存のLaFを拡張して)独自のLaFを作成する方がよいかどうかを考えていることもありますが、実際にはわかりません。

今のところ、私は主にNimbusを使用していますが、すべての色を(暗い色に)変更し、スライダーやスクロールバーなどの一部のコンポーネントの外観を書き直しています。また、ほとんどすべてのテーブルをカスタマイズしており、他のいくつかのコンポーネントの外観を変更することを考えています。

カスタマイズするのではなく、新しいルックアンドフィールを作成することをお勧めするのはいつですか。長所と短所は何ですか?

つまり、ニンバスをカスタマイズしますか、それともニンバスを拡張して新しいニンバスを作成しますか?

関連記事:カスタムルックアンドフィールの作成(旧)

4

3 に答える 3

6

カスタマイズするのではなく、新しいルックアンドフィールを作成することをお勧めするのはいつですか。

  • すべての主要なプラットフォームでアプリをほぼ同じように見せたい場合
  • あなたのアプリがJavaアプリであるという「死んだプレゼント」を取り除きたいとき(これは、Javaがユーザーの間でひどく悪い評判を持っているOSXユーザーのために商用ソフトウェアを販売しているかなりのプログラマーにとって懸念事項です[それは価値がありませんが、それは事実])。

これは、哀れなJTableを少し強化するために経験しなければならない種類の病気の例です(このブログの作者は後でAppleに雇われました):

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

長所は何ですか?

アプリをほぼ同じように見せることは可能です(唯一の違いはフォントレンダリングであり、OS XからLinux、Windowsまでわずかに異なります...しかし、かなり近くにすることも、「A​​A以外」を使用することもできます。 「ピクセルパーフェクトフォント、それは完全に同一に見えます)。

と短所?

  • あなたのアプリはネイティブな見た目ではありません。
  • それは大変な作業です(スイングは正確に簡単ではありません。それはある種の過剰に設計され、過度に複雑な獣であり、「信じられないほどスマートに設計された」か「信じられないほど愚かに設計された」かを判断するのは非常に困難です)。

Windows、Linux、OS Xでまったく同じように見えるカスタムSwingコンポーネントをいくつか作成しましたが(ピクセルパーフェクトフォントを使用)、LnF全体を作成することはしませんでした。

于 2010-04-25T01:55:27.147 に答える
0

次のような一般性を除いて、この質問に対する答えはないと思います。

  • 既存のルックアンドフィールに変更を適用する労力が、新しいルックアンドフィールを作成するよりも大きい場合、または

  • 技術的でない理由で新しいルックアンドフィールを作成する場合。

于 2010-04-25T00:56:33.727 に答える
0

Javaのルックアンドフィールを書くことは、気の弱い人向けではありません。それ自体が努力であるため、ニーズに合った既存のルックアンドフィールを見つける方がおそらく効率的だと思います。

Kathryn Huxtableは、かなりの作業であるSea Glass LookandFeelの実装に取り​​組んできました。これはNimbusに基づいていますが、NimbusとそのSwingの基盤は、カスタムのルックアンドフィールを作成するために必要なほど拡張可能ではありません。つまり、コードの多くをコピーしてサブクラスに貼り付ける必要があります。別のプロジェクトに取り組んでいるときに、この種のことを傍観したくないでしょう。

Syntheticaも既存のオプションの1つであり、非常に肌に優しいと思います。

于 2011-03-10T16:15:45.500 に答える