3

私はJavaプロジェクトに取り組んでいます。ユーザーがラベルの色を入力できるようにします。このようなことをしたいのですが、文字列を使用します。

jLabel3.setForeground(Color.blue);

これが私が試したものですが、うまくいきませんでした:

String a = "blue";
jLabel3.setForeground(Color.a);

また:

String a = "blue";
jLabel3.setForeground(a);

メソッドでこれを行う別の方法はありますか?どんな助けでも素晴らしいでしょう。ありがとうございました。

4

3 に答える 3

7

1 つの方法を次に示します。

Map<String, Color> colors = new HashMap<String, Color>();

// ...

colors.put("blue", Color.BLUE);
colors.put("red", Color.RED);
colors.put("green", Color.GREEN);
// other colors

次に、次のように使用します。

String a = "blue";
jLabel3.setForeground(colors.get(a.toLowerCase()));

編集:カラーチューザーを検討してください。カラー チューザーの使用方法 を参照してください。

于 2013-03-07T21:22:07.673 に答える
4

リフレクションを試してください:

Color color;
try {
    Field field = Class.forName("java.awt.Color").getField("yellow");
    color = (Color)field.get(null);
} catch (final Exception e) {
    e.printStackTrace();
}

それに加えて、色とその名前のマップを作成できます。

于 2013-03-07T21:22:16.327 に答える
0

より良い方法があるかどうかはわかりませんが、次のようなことができます。

If("blue".equals(a)){
    jLabel3.setForeground(Color.blue);
}
于 2013-03-07T21:24:03.707 に答える