java.awt.color返回颜色名称而不是RGB值

java.awt.color返回颜色名称而不是RGB值,java,Java,在任何人将此标记为重复之前,我阅读了其他7个类似的问题,其中没有一个问题的答案与我想要的答案相近。我还冒险浏览了谷歌搜索结果的前两页,仍然找不到答案 我不关心世界上所有的颜色,我只想使用java颜色类中已有的颜色(即“红色”、“黑色”、“绿色”) 我正在为一个intro Java类编写一个程序,教授说要声明“一个名为guitarColor的私有颜色数据字段,它定义吉他的颜色。默认值应该是Color.Red。”他的示例输出显示返回的颜色为“getColor():Red”。所以我需要使用color类

在任何人将此标记为重复之前,我阅读了其他7个类似的问题,其中没有一个问题的答案与我想要的答案相近。我还冒险浏览了谷歌搜索结果的前两页,仍然找不到答案

我不关心世界上所有的颜色,我只想使用java颜色类中已有的颜色(即“红色”、“黑色”、“绿色”)

我正在为一个intro Java类编写一个程序,教授说要声明“一个名为guitarColor的私有颜色数据字段,它定义吉他的颜色。默认值应该是Color.Red。”他的示例输出显示返回的颜色为“getColor():Red”。所以我需要使用color类来获得这种格式的输出

当我使用java.awt.color类并输入类似color.RED的内容时,我希望它返回“RED”,而不是“java.awt.color[r=255,g=0,b=0]”。我该怎么做

import java.awt.Color;

public class Program
{
    public static void main(String[] args) {

    Guitar g1 = new Guitar(); 

    System.out.println("getColor() result: " + g1.getColor());

    }
}


public class Guitar {    

    private Color guitarColor;

    public Guitar () {
        guitarColor = Color.RED;
    }

   public Color getColor() {
       return guitarColor;
   }


} 
输出:

getColor() result: java.awt.Color[r=255,g=0,b=0]

我将在吉他类中创建一个函数,用于解密吉他的颜色,并返回该颜色的
字符串
表示,而不是实际的
颜色
对象。试试这个

public String getColorOfGuitar() {

    if(guitarColor.equals(Color.RED))
        return "RED";
    else if(guitarColor.equals(Color.BLUE))
        return "BLUE";
    else if(guitarColor.equals(Color.YELLOW))
        return "YELLOW";
    else
        return "Unknown Color";
}
现在,当您调用该方法时,它将返回该颜色的字符串表示形式

System.out.println("getColorOfGuitar() result: " + g1.getColorOfGuitar()); //--> getColor() result: RED

我想你需要展示一些代码。我要做的是:创建我自己的枚举或映射,将字符串链接到颜色。但是,尽管如此,没有一个万能的答案。对于
颜色(130、23、199)
,应该返回什么字符串?这就是为什么您应该编写自己的代码,将颜色子集链接到相应的字符串。所以,是的,正如@RobGorman所建议的——请显示一些代码。@RobGorman我更新了代码链接。请不要链接到代码。把它包括在你的帖子里,格式正确。