2

わかりましたので、「システム」のルック アンド フィールを使用するスイング アプリを作成しました。ここで、メイン パネルの背景色を黒に変更します。簡単すぎますよね?

UIManager.put("Panel.background", Color.BLACK);

そうですね、アプリのコントロールが馬鹿げているように見えることを除いて、より良い言葉が必要なため、「影」が古いシステムのデフォルトの色(グロスウィンドウグレー)に向かってフェードするようになっているためです。そのため、すべてのコントロール、特に JTabbedPane のタブに薄い灰色の「コーナー」があります。WindowsXP のテーマを別のデフォルト アプリケーションの色に変更すると、コントロールがこの変更された色になり、その影がそれに向けて「フェード」するため、修正できることはわかっています。

しかし、それが何の UIManager キーなのか、あるいは UIManager でそれができるのかさえわかりません。

L&F エンジンを変更したくありません。これ以外は見栄えが良いからです。

4

5 に答える 5

2

これらを試すことができます:

  • コントロール
  • コントロールDkShadow
  • コントロールハイライト
  • controlLtハイライト
  • コントロールシャドウ

(私はちょうどこのリストでそれらを見つけました: Swing [Archive] - UIManager: setting background and JScrollBar )

于 2008-10-14T06:08:49.593 に答える
2

一般に、これは少しトリッキーです。使用している正確な LaF によって異なります。

例えば。JGoodies は、このようなものを再定義する独自の配色を使用します。

一般に、プロパティ名は次のように構成されます

COMPONENT_NAME_WITHOUT_J + '.' + PROPERTY. 

残念ながら、プロパティ名は LaF の実装クラスからしか取得できません。これらは共有されていません。各コンポーネントには独自のものがあります。というか、どのペアを使ったかは作者の怠惰次第です。一般に。

Panel.* と Button. . 多くのコンポーネントが Button を使用しています。プロパティ。

試して、遊んで、勝つ:)。私はあなたの幸運を祈ります :)。

PS: 上書きするプロパティがたくさんあります。しかし、これが LaF の仕組みです。

于 2008-10-16T20:01:35.857 に答える
1

UIManager.getDefaults(); を使用して、デフォルト設定 (およびそのキー) を確認できます。その後、結果の keySet を反復処理できます (これは Map のインスタンスです)。

したがって、次のようにすると、すべてのデフォルト キーが表示されます。

for (Object key: UIManager.getDefaults().keySet())
{
    System.out.println(key);
}
于 2008-10-14T05:56:24.330 に答える
1

JButton などの一部のコントロールはsetOpaque(false)、新しい背景色がフェード スルーできるように呼び出す必要があります。

于 2010-10-29T00:38:42.547 に答える
1

LaF を変更するために UIManager に設定できるすべての可能なオプションを一覧表示するには、以下のコードを実行します .........

 import java.util.*;
  import javax.swing.UIManager;

  public class UIManager_All_Put_Options
  {
    public static void main (String[] args)
    {
      Hashtable   properties = UIManager.getDefaults();
      Enumeration keys       = properties.keys();

      while (keys.hasMoreElements()) {
        String key   = (String) keys.nextElement();
        Object value = properties.get (key);
        System.out.printf("%-40s \t %-200s \n", key,value);
      }
    }
  }

楽しい...

于 2011-05-19T04:40:55.470 に答える