我试图使用
在java中创建一种新颜色Color temp = new Color(foo.getBackground());
它一直告诉我找不到符号。
但这有效
Color temp = (foo.getbackground());
为什么?
答案 0 :(得分:15)
那是因为foo.getBackground()
返回一个Color
实例,并且没有Color
构造函数将Color
实例作为参数。
答案 1 :(得分:5)
点击此链接Color (Java 2 Platform SE v1.4.2)。
如果您希望此代码有效:
Color temp = new Color(foo.getBackground());
foo.getBackground()必须返回一个整数。由于它返回一个对象颜色,因此您的类型不匹配。
你总是可以这样做:
Color temp = new Color(foo.getbackground().getRGB());
或:
Color color = foo.getBackground();
Color temp = new Color(color.getRed(), color.getGreen(), color.getBlue(),color.getAlpha());
答案 2 :(得分:0)
是的,你可以做到,问题是foo.getBackground可能不会返回一个整数或类似的东西。
Color c = new Color(23,32,43)
完美运作
答案 3 :(得分:0)
没有Color的构造函数只需要一个Color。在第二个实例中,您将分配从函数返回的变量。
答案 4 :(得分:0)
Color类没有构造函数将Color的其他实例作为参数,这就是foo.getBackground()返回的内容。 IIRC,Java中的Color类是不可变的 - 因此提供一个可以创建现有Color对象副本的构造函数毫无意义。
答案 5 :(得分:0)
显然foo.getBackground()返回的类型是“Color”类型。
虽然您可以将Color分配给Color类型的变量temp,但至少在java.awt.Color中没有构造函数可以从另一个Color创建Color。