为什么可以';我在Java中创建了一种颜色,带有;新";关键词?
我试图用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
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());