为什么我不能在 Java 中使用“new”创建颜色关键词?

发布于 2024-08-03 00:47:52 字数 204 浏览 8 评论 0原文

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

Color temp = new Color(foo.getBackground());

,但它一直告诉我找不到符号。

但这有效

Color temp = (foo.getbackground());

为什么?

I was trying to make a new color in java using

Color temp = new Color(foo.getBackground());

and it kept telling me cannot find symbol.

But this works

Color temp = (foo.getbackground());

Why?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

对不⑦ 2024-08-10 00:47:52

这是因为 foo.getBackground() 返回一个 Color 实例,并且没有采用 Color 实例的 Color 构造函数作为一个论点。

That's because foo.getBackground() returns a Color instance, and there's no Color constructor which takes a Color instance as an argument.

玩世 2024-08-10 00:47:52

检查此链接 颜色 (Java 2 Platform SE v1.1) 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());

Check this link Color (Java 2 Platform SE v1.4.2).

If you want this code to work:

Color temp = new Color(foo.getBackground());

foo.getBackground() must return an integer. Since it returns an object Color you have type mismatch.

You can always do:

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

or:

Color color = foo.getBackground();
Color temp = new Color(color.getRed(), color.getGreen(), color.getBlue(),color.getAlpha());
滥情空心 2024-08-10 00:47:52

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

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

完美运作

Yes, you can do it, the problem is that maybe foo.getBackground does'nt returns an integer or something similar.

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

works perfectly

迎风吟唱 2024-08-10 00:47:52

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

There isn't a constructor for Color that takes just a Color. In the second instance you're assigning a variable that was returned from a function.

清晰传感 2024-08-10 00:47:52

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

The Color class does not have a constructor taking an other instance of Color as an argument, and that is what foo.getBackground() returns. IIRC, the Color class in Java is immutable - so there is simply no point in providing a constructor that would create a copy of an existing Color object.

风和你 2024-08-10 00:47:52

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

虽然您当然可以将 Color 分配给 Color 类型的变量 temp,但至少在 java.awt.Color 中没有构造函数可以从另一个 Color 创建 Color。

Apparently the type that foo.getBackground() returns is of type "Color".

While you can of course assign a Color to the variable temp of type Color, at least in java.awt.Color there is not constructor to create a Color from another Color.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文