2010-12-07 20 views
2

CLabel.setEnabled(false)は明らかにラベルをグレーアウトしません。SWTでCLabelを表示しないようにする方法(Windows)

多分、私はsetForeground()を使って灰色の色に設定することができますが、まだいくつかの質問/懸念があります: a。私はどんな色を使うべきですか?プラットフォーム間で良好に見えますか? b。私は元の色をどこかに保存して、再度「有効」にしたときに元の色に戻す必要があります。また、setForeground()を無効にしている間(他のコードから)呼び出さないようにする必要があります。

誰かがより良い解決策を提案できますか?または、少なくとも上記の質問にお答えしますか?

ありがとうございました!あなたが変化するカラー・ソリューションのためのつもりなら

+1

org.eclipse.swt.widgets.Labelを使用すると、そのsetEnabledメソッドはコンポーネントをgreyishにします。 – ozhan

+0

ありがとうございます。私はこの面でCLabelの動作が異なっていることに気づいていませんでした。 – RAY

+0

私はラベルを持って行くつもりです。 – RAY

答えて

1

、あなたはSWTで定義された定数のいずれかで(通常はプラットフォームに依存する)システムの色を取得しようとすると、例えばすることができます

Display.getDefault().getSystemColor(SWT.COLOR_TITLE_INACTIVE_FOREGROUND) 

と対応する

Display.getDefault().getSystemColor(SWT.COLOR_TITLE_FOREGROUND) 
+0

残念ながら、SWT.COLOR_TITLE_INACTIVE_FOREGROUNDは、Windows XPでCLABELの正しい無効な色を表示しません。これは淡い灰色で表示され、無効なラベルとは異なります。 – dejuknow

関連する問題