2008-09-08 19 views
51

これはかなり単純です、私はスイング/ awtの背景から来ています。SWTの色を設定する

SWTウィジェットの背景色を設定する適切な方法は何ですか?

私がしようとしてきた:

widget.setBackground(); 

を私はSWTのカラーオブジェクトを作成する方法が分からない場合を除き?色を作成するには

答えて

52

、これを試してみてください。

Device device = Display.getCurrent(); 
Color red = new Color (device, 255, 0, 0); 
+0

これはうまくいきました。 ありがとう、あなたの男。私はちょうど現在のデバイスを入手する場所を見つけることができませんでした。 –

+22

このカラーを廃棄することを忘れないでください!そうしないと、ネイティブリソースがリークします。 – Eddie

10

はSWTで明示的にあなたが彼らと一緒に行われたときに作成したすべてのリソースを配置しなければならないことに注意してください。これには、ウィジェット、フォント、カラー、イメージ、ディスプレイ、プリンタ、およびGCが含まれます。これらのリソースを処分しないと、最終的にアプリケーションがオペレーティングシステムのリソース制限に達し、アプリケーションの実行が停止します。

も参照してください:Display.getSystemColor(int)を使用し、あなたが望む色のSWT.COLOR_*定数を渡す(オペレーティングシステムで使用される一般的な色やデフォルト色を含む)の標準的な色のためにSWT: Managing Operating System Resources

+1

この[SWTResourceManager](https://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/org/eclipse/ecf/ui/SWTResourceManager.html)を使用することをお勧めします – Campa

72

Display display = Display.getCurrent(); 
Color blue = display.getSystemColor(SWT.COLOR_BLUE); 
Color listBackground = display.getSystemColor(SWT.COLOR_LIST_BACKGROUND); 

SWTが作成したため、これらの色を処分する必要はありません。

+3

これはあなたの標準にする必要がありますSWT.COLOR_ *セットでサポートされている任意の色です。前述のように、この方法で作成された色を処分することを忘れてはいけません。 –

+0

'SWT.COLOR_LIST_BACKGROUND':素晴らしいです。 – Campa

関連する問題