Java 将颜色类中的颜色转换为人类可读的字符串
我希望将颜色对象转换为人类可读的字符串Java 将颜色类中的颜色转换为人类可读的字符串,java,colors,awt,Java,Colors,Awt,我希望将颜色对象转换为人类可读的字符串 为了澄清这一点,我只是在寻找类的静态变量的转换 例如 Color.YELLOW->“黄色” Color.RED->“RED” 我要输出“红色” 提前感谢您的帮助。使用Java反射。这段代码提供了有用的输出。您可以通过类似于list.remove(“位掩码”)的方式从ArrayList中删除不需要的内容 导入java.awt.Color; 导入java.lang.reflect.Field; 导入java.util.ArrayList; 公开课考试 { 公共
为了澄清这一点,我只是在寻找类的静态变量的转换 例如
提前感谢您的帮助。使用Java反射。这段代码提供了有用的输出。您可以通过类似于
list.remove(“位掩码”)的方式从ArrayList中删除不需要的内容代码>
导入java.awt.Color;
导入java.lang.reflect.Field;
导入java.util.ArrayList;
公开课考试
{
公共静态void main(字符串[]args)
{
字段[]名称=Color.class.getFields();
ArrayListlist=新的ArrayList();
for(字段名:名称)
list.add(name.getName());
对于(int i=0;i
输出:
白色-白色-浅灰色-浅灰色-深灰色-深灰色-黑色
黑-红-粉-粉-橙-橙-黄-绿-绿
洋红洋红青色青蓝不透明位掩码半透明
如果255,0,0是“红色”,那么254,0,0叫什么?您需要16777216个颜色名称吗?我只是在寻找颜色类的静态变量的转换,想知道是否有一种很好的方法。toString()以RGB表示形式返回它。@patrick_corrigan我提供了满足您静态变量要求的测试代码。@patrick_corrigan没有直接的方法。你要么按照递解程序显示的方式,使用反射来读取常量名称(也就是颜色名称)或者您必须自己手动创建一个映射。@FabianBarney谢谢您的解释。我不知道如何使用上面的代码来满足我的需要。您只需准备一个哈希映射,将颜色名称与颜色对象相匹配。@Lucker非常感谢:)
Color red = Color.RED;
System.out.println(red.conversionMethod());
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 ) );
}
}