2

Swingに、JListを無効にした前景色を設定するプロパティはありますか?

Netbeans GUIビルダーを使用しており、JListが無効になっている場合に、JListのテキストの色を別のデフォルトに設定するプロパティをリソースプロパティファイルに追加したいと思います。Nimbus LAFを使用すると、テキストが無効になっている場合は灰色になり、有効になっている場合は黒になるため、これには異なる色があります。無効にしたときに灰色にしたくないだけです。

標準の前景色は.foregroundです。

ありがとう。

4

2 に答える 2

3

DefaultListCellRenderer拡張しますJLabel。そのメソッドでは、渡されたgetListRendererComponentの状態に基づいて有効状態を設定します。JList

JLabelで無効なテキストをペイントするためのコードはBasicLabelUI、シャドウ効果でテキストをペイントする作業を行います。"Label.disabledForeground"多くのサブクラスには、 UI プロパティを探すコードがあります。Nimbus のデフォルトは を探しているようです"Label.disabledText"

いくつかのオプションがあります。

  1. "Label.disabledText"でプロパティを設定すると、無効になっているUIManagerすべてのJLabelインスタンスとサブクラスがこのカラーリングになります。
  2. JListの有効な状態をテストしてから、任意のカスタム コードを実行するカスタム レンダラーを作成できます。JListまたは、有効な状態に関係なく同じように見せたい場合は、有効な状態のテストを完全に省略できます。

カスタム レンダラー アプローチを採用することをお勧めします。JLabelプロパティの変更がどこに表示されるかを判断するのは難しいためです。そのクラスは多くの異なるコンポーネントでビルディング ブロックとして使用されているためです。

于 2010-02-17T05:51:19.183 に答える
1

設定するプロパティがある場合、UIManager Defaultsプログラムは変更するプロパティを表示する必要があります。Metal または Windows LAF のプロパティが表示されないため、UI コードで直接制御されている可能性があります。

于 2010-02-16T23:46:58.527 に答える