Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.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_Constructor_Awt - Fatal编程技术网

为什么可以';我在Java中创建了一种颜色,带有;新";关键词?

为什么可以';我在Java中创建了一种颜色,带有;新";关键词?,java,colors,constructor,awt,Java,Colors,Constructor,Awt,我试图用java制作一种新的颜色 Color temp = new Color(foo.getBackground()); 它一直告诉我找不到符号 但这是有效的 Color temp = (foo.getbackground()); 为什么?那是因为foo.getBackground()返回一个Color实例,并且没有Color构造函数将Color实例作为参数。是的,你可以这样做,问题是foo.getBackground可能不返回整数或类似的东西 Color c = new Color(23

我试图用java制作一种新的颜色

Color temp = new Color(foo.getBackground());
它一直告诉我找不到符号

但这是有效的

Color temp = (foo.getbackground());

为什么?

那是因为
foo.getBackground()
返回一个
Color
实例,并且没有
Color
构造函数将
Color
实例作为参数。

是的,你可以这样做,问题是foo.getBackground可能不返回整数或类似的东西

Color c = new Color(23,32,43)

完美地工作

没有一个颜色构造器只接受一种颜色。在第二个实例中,您正在分配一个从函数返回的变量。

Color类没有将其他Color实例作为参数的构造函数,这就是foo.getBackground()返回的结果。Java中的颜色类是不可变的,因此提供一个构造函数来创建现有颜色对象的副本是毫无意义的。

检查此链接

如果希望此代码正常工作:

Color temp = new Color(foo.getBackground());
getBackground()必须返回一个整数。因为它返回对象颜色,所以类型不匹配

您可以随时执行以下操作:

Color temp = new Color(foo.getbackground().getRGB());
或:


显然,foo.getBackground()返回的类型是“Color”


当然,您可以为Color类型的变量temp指定一种颜色,但至少在java.awt.Color中,没有从另一种颜色创建颜色的构造函数。

如果要复制foo的颜色,可以这样做:
Color tmp=new Color(foo.getBackground().getRGB())虽然没有太多的意义,因为颜色实例是不可变的。事实上,我怀疑Kok真的只是想说
Color temp=foo.getBackground()
Color color = foo.getBackground();
Color temp = new Color(color.getRed(), color.getGreen(), color.getBlue(),color.getAlpha());