将Color类中的颜色转换为人类可读的字符串

问题描述:

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

澄清我只是在寻找一个类的静态变量的转换。

例如。

  1. Color.YELLOW - > “黄色”
  2. Color.RED - > “红色”
Color red = Color.RED; 
System.out.println(red.conversionMethod()); 

我想要的 “红色”

预先感谢您的输出您的帮助。

+0

什么是'toString()'做的? – bzlm 2012-02-18 12:30:20

+0

如果255,0,0是“红色”,什么是254,0,0?你期望16777216个颜色名称? – 2012-02-18 12:38:16

+0

我只是在寻找颜色类的静态变量的转换,并想知道是否有一个很好的方法来做到这一点。 toString()以RGB表示形式返回它。 – 2012-02-18 12:41:17

使用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透明

+0

@patrick_corrigan没有直接的方法。你必须按照驱逐出示的方式使用反射来读取常量名称(也就是颜色名称),或者您必须手动创建地图。 – 2012-02-18 13:16:04

+0

@FabianBarney谢谢你的解释。我不明白如何使用上面的代码来满足我的需要。 – 2012-02-18 13:21:32

+0

您只需准备一个匹配颜色名称和Color对象的哈希映射。 – Juvanis 2012-02-18 13:28:16