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