スイングコンポーネント(例:JPanel)のすべてのインスタンスのデフォルトの背景ペイントをグラデーションの背景に変更する方法はありますか?それとも、JPanelの拡張機能を作成して、グラデーションで塗りつぶしてから、JPanelの代わりにアプリで使用する必要がありますか?スイングコンポーネントのデフォルトのグラデーションの背景
答えて
IMHOの場合、Swingコンポーネントをサブクラス化し、グラデーションペインティングを行うためのpaintComponent
メソッドをオーバーライドする方が簡単です。そして、あなたが言ったように、アプリケーション全体でこのカスタムコンポーネントを使用します。
すべてのLaFで一貫性がない可能性があるため、UIプロパティを使用するのは難しいことがあります。
私の最初の考えだった。もっと簡単な方法があれば分かりませんでした。特に複数のコンポーネントタイプにグラデーションを適用したい場合は、すべてのコンポーネントをサブクラス化する必要があります。 –
@JeffStorey、その場合は、 'JComponent'をサブクラス化する方が良いかもしれません。 – Moonbeam
複数のコンポーネントタイプにどのように役立つか分かりません。ボタンのバックグラウンドを変更していたとします。ここでJComponentのサブクラス化の仕方はどうですか? –
あなたが意図している範囲が完全にはっきりしていません。 クラス(つまり、すべてのJPanelインスタンスが新しいペイントスキームに従うようになっていますか?)またはすべてのコンテナ内のコンポーネント(フレーム内のすべて)を意味しますか?
これは、コンポーネントクラス、ルックアンドフィール、コンポーネントインスタンスベース、paintComponent()メソッド、またはコンポーネントが作成された後に独自のUIクラス(Component.setUIを参照)を提供することによって、そのメソッドを制御できないためにメソッドを上書きできない既存のコンポーネントの標準外観。
overwrite paintComponentアプローチを除いて実装するのは簡単ではありません。ほとんどのアプリケーションでは、単純なアプローチが最高です:)
- 1. スイングコンポーネントのデフォルトの背景色を取得する
- 2. JPanelグラデーションの背景
- 3. グラデーションの背景UIScrollView
- 4. 背景グラデーションの色と背景イメージDRYly
- 5. CSSのグラデーションの背景ボタン
- 6. TabBarのグラデーションの背景?
- 7. divのCSSグラデーションの背景
- 8. グループボックスのグラデーションの背景
- 9. 背景のグラデーションの問題
- 10. JToolBarのグラデーションの背景
- 11. 背景のIE11グラデーションの色
- 12. Flex SWFグラデーションの背景
- 13. CSSトランジションの背景グラデーション(ハック)
- 14. WPF Datagrid.RowStyleグラデーションの背景
- 15. イオン3:グラデーションの背景
- 16. IOSの背景グラデーション - ストーリーボード
- 17. CSSグラデーションの背景でスクロール
- 18. TableViewCell背景色グラデーション
- 19. グラデーション+背景画像
- 20. カバー背景画像+グラデーション背景
- 21. のAndroidのOpenGL-ESのグラデーションの背景
- 22. PHPの時間ベースのグラデーションの背景
- 23. Androidの長方形の背景のグラデーション
- 24. Ionic 2の背景色のグラデーション
- 25. 画像のないグラデーションの背景
- 26. 背景の上にCSSのグラデーション
- 27. JavaScriptのグラデーションの背景表から表
- 28. 設定背景グラデーション - jshintエラー
- 29. グラデーションの背景に白い余白IOS
- 30. グラデーションの背景を使ったスタイリングUITableViewCells
背景JPanelでこれを行い、他のすべてのJPanelを不透明にする必要はありませんか? –
@HovercraftFullOfEels、これも別のオプションです。しかし、それを他のコンポーネントにも拡張したい場合は、それらのコンポーネントを拡張する必要があると思います。 –
@JeffStorey:おそらく必ずしもそうではありません。不透明をfalseに設定する簡単なファクトリメソッドを使ってJPanelを作成することもできますし、GUI以外のすべてのJPanelを非不透明に設定することもできます。 –