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

时间:2018-04-03 22:31:41

标签: java

在任何人将此标记为副本之前,我会阅读其他7个相似的问题,并且没有一个问题能够在我正在寻找的任何地方找到答案。我还冒险浏览了谷歌搜索结果的前两页,仍然无法找到答案。

我不关心世界上的所有颜色,我只想使用已经在Java Color类中的颜色(即"红色","黑色&# 34;,"绿色")。

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

当我使用java.awt.color类并输入类似Color.RED的东西时,我希望它返回" Red",not" java.awt.Color [r = 255, G = 0,b = 0]&#34 ;.我怎么能这样做?

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]

1 个答案:

答案 0 :(得分:3)

我会在吉他课中创建一个函数,解释吉他的颜色并返回该颜色的String表示,而不是实际的Color对象。试试这个

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";
}

现在,当您调用该方法时,它将返回该Color

的String表示形式
System.out.println("getColorOfGuitar() result: " + g1.getColorOfGuitar()); //--> getColor() result: RED