Java 使用字符串设置JLabel的颜色

Java 使用字符串设置JLabel的颜色,java,swing,colors,jlabel,foreground,Java,Swing,Colors,Jlabel,Foreground,我正在从事一个Java项目。我想让用户输入标签的颜色。我想做这样的事,但是用一根绳子 jLabel3.setForeground(Color.blue); 以下是我尝试过但没有成功的方法: String a = "blue"; jLabel3.setForeground(Color.a); 或: 有没有可能用另一种方法来实现这一点?任何帮助都会很好。谢谢。这里有一种方法: Map<String, Color> colors = new HashMap<String, Col

我正在从事一个Java项目。我想让用户输入标签的颜色。我想做这样的事,但是用一根绳子

jLabel3.setForeground(Color.blue);
以下是我尝试过但没有成功的方法:

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

有没有可能用另一种方法来实现这一点?任何帮助都会很好。谢谢。

这里有一种方法:

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

<> > >编辑:< /强>考虑颜色选择器。请参阅。

尝试反射:

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

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

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

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

-1:只适用于预定义的颜色,不适用于用户定义的颜色,即使您的代码示例编译并运行良好,反射也不是为了满足这种需要而设计的。Eng.Fouad为我做了很多工作,没有什么需要添加的,它是完美的,而且是升级的。那么您在这里没有任何贡献。此外,上次我检查时,他的方法也只适用于预定义颜色。如果我们有256种颜色,你可以在需要颜色的每个位置添加256*3 LOC?@Aubin确切地说,这是一种非常原始的方法,但它可能有效,这取决于允许用户使用多少种不同的颜色。“-1:仅适用于预定义颜色,而不适用于用户定义的颜色”-Aubin+1表示
地图
;相反的建议是任意的。也可以考虑一个.@传奇,他可以提供一种注册用户定义颜色的方法——通过在地图中添加新的值。
Color color;
try {
    Field field = Class.forName("java.awt.Color").getField("yellow");
    color = (Color)field.get(null);
} catch (final Exception e) {
    e.printStackTrace();
}
If("blue".equals(a)){
    jLabel3.setForeground(Color.blue);
}