1. ホーム
  2. java

[解決済み] java.awt.Color.getColor(String colorName)はどのように動作するのですか?

2022-02-18 22:07:13

質問

色を名前で取得しようとしているのですが、以下のようなものがありました。 Javaで文字列を色に変換する を使用することを提案しています。 java.awt.getColor .

でも、文字列として何を渡せばいいのか、うまくいかないんです。次のような

System.out.println( java.awt.Color.getColor( "black", Color.red ) );

プリントアウト

java.awt.Color[r=255,g=0,b=0]

つまり、そこにあるデフォルトの色で行っているのです。

これをテキストボックスに入れて、別の大文字小文字などを試しました。ドキュメントもあまり役に立ちません。どなたか、どのような魔法の文字列を入れればよいかご提案いただけないでしょうか?

どのように解決するのですか?

非承認の回答では Color.getColor . このメソッドは、存在するかどうかわからないシステムプロパティを読み取ります。 このメソッドは使用しないでください。

代わりに、アップボーティングされたリフレクションメソッドを使って Color クラスがあります。 あるいは、文字列名とRGB値を対応させた独自のカラーデータベースをインポートするか、どちらかです。

Color color;
try {
    Field field = Color.class.getField("yellow");
    color = (Color)field.get(null);
} catch (Exception e) {
    color = null; // Not defined
}