繁体   English   中英

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

[英]Using Java, can I convert a human readable color name into an integer array?

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

例如,我有一种颜色,表示为:

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

而且我希望能够将静态值Color.BLUE转换为与上面的相似的三元素整数数组。 这可能吗,还是我必须解决这个问题?

你是说这个意思吗

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; // ??
    }
}

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

向下滚动您链接的文档

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

String获取Color对象的最简单方法是创建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类更为合适。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM