使用Java,我可以将人类可读的颜色名称转换为整数数组吗?

时间:2011-09-08 18:00:42

标签: java colors

使用Java,如何将人类可读的颜色名称转换为三元素整数数组?

例如,我有一种颜色代表:

int[] RGB_COLOR = {128,25,25};

我希望能够将静态值Color.BLUE转换为与上面的类似的三元素整数数组。这是可能的还是我必须破解我的方式?

4 个答案:

答案 0 :(得分:4)

你的意思是这样......

Color c = Color.BLUE;
int[] RGB = { c.getRed(), c.getGreen(), c.getBlue() };

要将颜色名称转换为颜色,您可以使用反射,前提是它具有内置颜色。如果您想要更多颜色,则需要使用地图。

public static Color colorOf(String color) {
    try {
        return (Color) Color.class.getDeclaredField(color).get(null);
    } catch(Exception notAvailable) {
        return null; // ??
    }
}

答案 1 :(得分:1)

只需使用getGreen()类的getRed()getBlue()Color方法

答案 2 :(得分:1)

向下滚动您关联的文档

Color c = //...;
int[] color = {c.getRed(),c.getGreen(),c.getBlue()};

答案 3 :(得分:0)

Color获取String对象的最简单方法是创建Map<String, Color>将有效String颜色名称映射到Color个对象。

Map<String, Color> map = new HashMap<String, Color>();
map.put("BLUE", Color.BLUE);
// etc.

Color color = map.get(someString);

另外,我建议将RGB值存储在int[3]中,除非你真的需要它,因为某些第三方代码需要它。一般来说,使用Color类更为合适。