java - 在java中按名称获取颜色

标签 java colors

<分区>

我正在使用一个包含 Color 对象的对象模型。

import java.awt.Color;

public class MyObject {

    ...
    private String color;

    public void setColor( Color c ) ...
    public Color getColor() ...
    ...

}

在 json 查询的响应中,我留下了颜色的物理名称

"color":"blue"

我知道 Color 对象有静态,即

Color.blue;

有没有办法将实际的颜色名称解码为 Color 对象?或者我需要自己手动将字符串映射到 rgb 值吗?

我正在寻找应该是这个输出的东西

Color c = new Color("blue");

这是行不通的

最佳答案

如果你的名字对应Java的常量,你可以使用反射来映射它们:

public static Color getColorByName(String name) {
    try {
        return (Color)Color.class.getField(name.toUpperCase()).get(null);
    } catch (IllegalArgumentException | IllegalAccessException | NoSuchFieldException | SecurityException e) {
        e.printStackTrace();
        return null;
    }
}

关于java - 在java中按名称获取颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35692823/

相关文章:

java - 如何知道一个国家/地区是否存在夏令时?

java - customAdapter 中的运行时错误

javascript - 如何检查十六进制颜色是否为 "too black"?

javascript - 更改 Canvas 上图像的颜色/色调的最佳方法是什么?

c# - 设置 TabPage 标题颜色

html - ie 9 的水平线 css 问题,<hr/> 颜色样式在 ie 9 中不起作用

java - Cellbrowser 在单元格上单击事件

java - 为什么枚举上的开关需要默认值?

java - 如何在 REST Web 服务的上下文中调用 spark 作业?

r - 为 geom_bar 图创建垂直颜色渐变