3

Swingを使用してJavaでGUIを作成する場合、より高度な「要素」をどのように作成する必要がありますか?例として、次のことを考慮してください。 ここに画像の説明を入力してください

これは、現在のページまたはステータスに応じて、最大10枚の画像を使用して実行できます。プログラムでこれを行うことも可能だと確信していますが、Swingでの過去の経験を考慮すると、比較的単純なものの多くのコードになると確信しています。特に、これをCSSで最大40行のコードで実行できることを考慮してください。

このような状況で、この「要素」を作成するための代替アプローチはありますか?そうでない場合; 何が好ましいか:画像またはスイング?

4

3 に答える 3

4
  1. 適切なUnicodeグリフを使用できます。例:✓— <code>チェックマークまたは任意の数字、

    • ラベルのテキストとして、ここに表示されます。

    • として、ここGlyphVectorで言及されています。

    • レンダリングされた画像として、ここに示されています。

  2. Iconインターフェイスを実装することで、色付きのアンチエイリアスサークルを取得できます。ColorIcon例です。

  3. ここBasciStrokeで見られるように、を使用してさまざまな実線と破線を取得できます。

  4. ストックレイアウトマネージャーの間でFlowLayoutは、適切かもしれません。

于 2012-12-01T01:29:41.833 に答える
3

これは要件に帰着します。

スケーラブルにしたい場合は、Swingグラフィックスが最適です。そうでない場合、画像は問題ないはずです。( n個の可能な接続に対して)再利用可能にしたい場合は、Swingグラフィックスの方が適しています。変更されない接続の数が限られている場合は、画像は問題ありません。

また、ルックアンドフィールを変更するのがどれほど簡単かを考慮する必要があります。画像の作成には時間がかかりますが、レンダラーの方が柔軟性があります。

私の場合、私は通常、2つの組み合わせを使用します。テキストのレンダリングは比較的簡単ですが、チェックマークなどの作成には時間がかかります。

また、単一の画像を作成してレンダリングする場合は、パーツごとに個別のコンポーネントを使用することも考慮する必要があります。

ナビゲーションなども検討したいと思います。必要な場合は、コンポーネントを使用しMouseListenersたり、ビューをモデルに変換して何が起こっているのかを判断する方が簡単です。

于 2012-11-30T23:15:58.187 に答える
2

本当にJavaを使用する必要がある場合(CSSを使用すると、そのようなものを実装する方がはるかに簡単です)、画像を使用する方が良いと思います。

グラフィック要素を生成するコードは実装できますが、実行が難しいだけでなく、保守もできません。設計に任意の単純な変更を加えると、実装に長い時間がかかる場合があります。

それとは反対に、画像は簡単に置き換えることができ、場合によってはアプリケーションを再コンパイルすることもありません(同じサイズや形式などを維持している場合)。

パフォーマンス面では、swingまたは別のライブラリを使用すると、アプリケーションのサイズが数キロバイト増加しますが、画像を使用すると、リソースが限られている場合(モバイルアプリ、古いコンピューター)にアプリケーションの応答性が向上する可能性があります。

于 2012-11-30T23:09:28.950 に答える