Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将颜色类中的颜色转换为人类可读的字符串_Java_Colors_Awt - Fatal编程技术网

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; 公开课考试 { 公共

我希望将颜色对象转换为人类可读的字符串


为了澄清这一点,我只是在寻找类的静态变量的转换

例如

  • Color.YELLOW->“黄色”
  • Color.RED->“RED”
  • 我要输出“红色”


    提前感谢您的帮助。

    使用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 ) );
        }
    }