8

UIManager を使用して、事前に作成されたスイング コンポーネント (JFileChooser など) の文字列を変更する人を見てきました。

どのコンポーネントのどの文字列が変更可能で、どのようにそれらにアクセスできるかを教えてくれるリファレンスはどこにありますか?

明確にするために:

UIManager.put(key, newString);キーが参照する文字列のテキストを に変更することはわかっています"newString"

キーのリストはどこにありますか?

4

4 に答える 4

4
  • Keys for UIManager はセンシティブLook and Feelです。つまり、(たとえば)Keys for Metal Look and Feelからの値を比較すると値が異なる可能性があることを意味します。System Look and FeelKey missed

  • @camickrによるUIManager Defaultを使用

于 2012-09-13T18:17:57.267 に答える
2

キーが異なる可能性があるため、次のようなコードを使用して自分でリストをダンプすることをお勧めします。

public static void printUIManagerKeys()
{
    UIDefaults defaults = UIManager.getDefaults();
    Enumeration<Object> keysEnumeration = defaults.keys();
    ArrayList<Object> keysList = Collections.list(keysEnumeration);
    for (Object key : keysList)
    {
        System.out.println(key);
    }
}

私にとって、リストには1365の要素が含まれていWindows 10ます。

于 2018-05-11T21:50:50.177 に答える
1

これらのキーは Swing PLAF リソース バンドルによって提供され、JDK ソースで見つけることができます。例を参照してください:

英語以外の言語の文字列値は、隣接するバンドル ファイルによって提供されます。

そして、必要な人間の言語用にもう 1 つのファイルを作成し、それをクラスパスの任意の場所に配置するだけで、これらのファミリのいずれかにバンドルをもう 1 つ追加できます。.java 形式と .properties 形式のバンドルは同じように機能しますが、.java 形式の方がわずかに Unicode に適している可能性があります...

com.sunパッケージにコンテンツを直接追加すると Java ライセンスに違反する可能性があるので注意してください。安全のために、余分なリソースを独自のパッケージに移動し、次のUIManagerように登録することをお勧めします。

UIManager.getDefaults().addResourceBundle("mypackage.swing.plaf.basic.resources.basic");
于 2016-03-26T14:53:27.710 に答える
1

すべてのキーを表示するには、コードを実行する必要があるようです。Java に関する質問であることは承知していますが、キーを取得する最も簡単な方法は、groovy (または gradle) スクリプトを起動することです。

javax.swing.UIManager.getDefaults().keys().toList().toSorted().each {println it}

groovy keys.groovyそれをファイルに貼り付けて、またはを呼び出しますgradle -b keys.groovy。入手しやすいツールを選択してください。

ファイルを作成しなくても、groovy で実行できます。単純に実行します:

groovy -e "javax.swing.UIManager.getDefaults().keys().toList().toSorted().each {println it}"
于 2016-12-03T14:57:23.770 に答える