将Color类中的颜色转换为人类可读的字符串
我希望将颜色对象转换为人类可读的字符串。将Color类中的颜色转换为人类可读的字符串
澄清我只是在寻找一个类的静态变量的转换。
例如。
- Color.YELLOW - > “黄色”
- Color.RED - > “红色”
Color red = Color.RED;
System.out.println(red.conversionMethod());
我想要的 “红色”
预先感谢您的输出您的帮助。
使用Java反射。此代码提供有用的输出。您可以从ArrayList中通过的东西删除不想要的像list.remove("BITMASK");
import java.awt.Color;
import java.lang.reflect.Field;
import java.util.ArrayList;
public class Test
{
public static void main (String [] args)
{
Field [] names = Color.class.getFields();
ArrayList <String> list = new ArrayList <String>();
for (Field name: names)
list.add(name.getName());
for (int i = 0; i < list.size(); i++)
System.out.println(list.get(i));
}
}
输出:
白衣LIGHTGRAY LIGHT_GRAY灰色灰色深灰DARK_GRAY黑 黑色红色红色粉红色粉红色橙橘黄色黄绿青 品红品红青色青蓝色不透明BITMASK透明
@patrick_corrigan没有直接的方法。你必须按照驱逐出示的方式使用反射来读取常量名称(也就是颜色名称),或者您必须手动创建地图。 – 2012-02-18 13:16:04
@FabianBarney谢谢你的解释。我不明白如何使用上面的代码来满足我的需要。 – 2012-02-18 13:21:32
您只需准备一个匹配颜色名称和Color对象的哈希映射。 – Juvanis 2012-02-18 13:28:16
什么是'toString()'做的? – bzlm 2012-02-18 12:30:20
如果255,0,0是“红色”,什么是254,0,0?你期望16777216个颜色名称? – 2012-02-18 12:38:16
我只是在寻找颜色类的静态变量的转换,并想知道是否有一个很好的方法来做到这一点。 toString()以RGB表示形式返回它。 – 2012-02-18 12:41:17