为什么我不能用"new"关键字在Java中创建Color?

kok*_*kok 2 java constructor awt colors

我试图在java中使用一种新颜色

Color temp = new Color(foo.getBackground());
Run Code Online (Sandbox Code Playgroud)

它一直告诉我找不到符号.

但这很有效

Color temp = (foo.getbackground());
Run Code Online (Sandbox Code Playgroud)

为什么?

Vin*_*jip 15

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

  • 虽然没有太多意义,因为Color实例是不可变的. (8认同)

Bru*_*ões 5

检查此链接Color(Java 2 Platform SE v1.4.2).

如果您希望此代码有效:

Color temp = new Color(foo.getBackground());
Run Code Online (Sandbox Code Playgroud)

foo.getBackground()必须返回一个整数.由于它返回一个对象颜色,因此您的类型不匹配.

你可以随时做:

Color temp = new Color(foo.getbackground().getRGB());
Run Code Online (Sandbox Code Playgroud)

要么:

Color color = foo.getBackground();
Color temp = new Color(color.getRed(), color.getGreen(), color.getBlue(),color.getAlpha());
Run Code Online (Sandbox Code Playgroud)