使用字符串设置JLabel的颜色

时间:2013-03-07 21:18:23

标签: java swing colors jlabel foreground

我正在开发一个Java项目。我希望用户为Label输入颜色。我想做这样的事情,但是用String。

jLabel3.setForeground(Color.blue);

这是我尝试的,但没有奏效:

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

或:

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

使用方法可能有另一种方法吗?任何帮助都会很棒。谢谢。

3 个答案:

答案 0 :(得分:7)

这是一种方式:

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()));

编辑:考虑使用颜色选择器。请参阅How to Use Color Choosers

答案 1 :(得分:4)

尝试反思:

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

除此之外,您还可以创建颜色及其名称的地图。

答案 2 :(得分:0)

不确定是否有更好的方法,但您可以执行以下操作:

If("blue".equals(a)){
    jLabel3.setForeground(Color.blue);
}