38

Java でカスタム コンポーネントを作成したり、既存のコンポーネントをカスタマイズしたりしたいとずっと思っていましたが、検索しても何も役に立ちませんでした。そこで、StackOverflow コミュニティに質問することにしました。

Java GUI コンポーネントの一般的なカスタマイズに関する情報はどこにありますか?

カスタマイズとは、色やフォントなどを変更することではありません。実際にカスタマイズすることを意味します。以下に、2 つのモックアップ サンプル コンポーネントを示します。

カスタム コンポーネントのモックアップ

注記
この質問は、主に上記の 2 つのカスタム コンポーネントを作成する方法を見つけるために始めました。しかし、Swing コンポーネントのハッキングについて一般的な質問はないことに気付きました。そのため、リソースのリストを作成した方がよいと考えました。

モックアップの 2 つのコンポーネントがどのように機能するのか疑問に思っている場合は、次のとおりです。

各方向に 2 つの Scrollbar を持つカスタマイズされた JScrollPane。各スクロールバーは異なる動作をすることができます。たとえば、外側のものは通常どおりスクロールし、内側のものはよりPicasaに似た方法でビューを移動します。私は実際にここでGoogleグループから有効な(!)回答を得ましたが、それは単なるコードでした.

2 つ目は、カスタム JComboBox で、ポップアップ リストが展開されると、末尾に JComponent があります。これは、アイコン付きの単純な JLabel から、ある方法でリストを操作する JButton まで、何でもかまいません。

しかし、この質問はそれらの特定のコンポーネントに関するものではありません。リソース (Web サイト、書籍、記事など)を見つけて作成方法を学習することです。

4

6 に答える 6

18

この記事「カスタムSwingコンポーネントの作成方法」は非常に役立ちます。個別のステップと連続範囲の両方を持つWindowsスライダーコントロールの複製について説明します。

于 2010-06-24T14:24:30.663 に答える
15

JDKはオープンソースです。Swingコンポーネントの作成方法を理解するには、Swingコンポーネントのソースよりも優れた場所はありません。一般に、カスタムコンポーネントを作成するときは、次の1つ以上に関心があります。{相互作用のセマンティクス、視覚的表現、構成構造}

最も単純なケースから始めます。

パッシブコンポーネント:JLabel
インタラクティブコンポーネント:JButton

JLabelJComponentコンポーネントのカスタム描画のための最低限の拡張機能を示します。この場合、表現として「text」文字列値を描画しています。

JButtonコンポーネントの描画に加えて、ユーザーとの対話のための最低限の拡張機能を示します。

于 2009-05-05T02:53:15.670 に答える
10

Filthy Rich Clientsは、このトピックに関する優れた非常に読みやすい本です。これは、まったく新しいコンポーネントを作成するというよりは、Swing コンポーネントのルック アンド フィールを改善することを目的としていますが、Swing の根幹に入り込み、多くの実用的な例を提供します。

于 2009-05-07T05:21:51.973 に答える
4

これは非常にオープンな質問です。短い簡単な答えは、サブクラスJComponentまたはその子孫の 1 つを作成し、必要な機能を追加することです。明らかに、これは何をしたいかによって難易度が異なる場合があります。手始めに、Swing コンポーネントの使用に関する Sun のチュートリアルを読むことをお勧めします。ここには、スクロール ペインポップアップ メニューの使用方法の例があります。それらを読んで実験すると、より具体的な質問が得られ、人々が熟考された回答を提供しやすくなります。

モックアップの 2 つのコンポーネントだけで実装したい場合は、それらをどのように機能させたいかについてより良いアイデアを提供することで、より良い答えが得られます。

于 2009-05-05T01:47:28.527 に答える
2

個人的には、上記の回答は一般的または漠然としすぎていると思います。また、誰かが私と同じようにこのスレッドに出くわすことは避けられないので、私が見つけたものを提供することもできます。

お役に立てれば...

于 2013-04-23T16:30:10.603 に答える
1

Swing Hacks:Killer GUIを構築するためのヒントとツール(Marinacci、Adamson)をお読みください。IMHOは、スイング全般を効果的に扱うために欠かせない本です。

于 2009-05-05T05:07:59.510 に答える