Java 想要使用数组元素作为属性,但引号会导致错误
我真的被这个简单的问题难住了 我有一个带有几种颜色的数组,如:Java 想要使用数组元素作为属性,但引号会导致错误,java,Java,我真的被这个简单的问题难住了 我有一个带有几种颜色的数组,如: String[] colors = {"BLACK", "YELLOW", "ORANGE"}; 我想使用数组中的一种颜色,如下所示: setBackground(Color.colors[1]); object.setBackground(Color.black); 但是我得到了错误 colors cannot be resolved or is not a field. 我确信有一个简单的方法来解决我的问题 谢谢 谢谢
String[] colors = {"BLACK", "YELLOW", "ORANGE"};
我想使用数组中的一种颜色,如下所示:
setBackground(Color.colors[1]);
object.setBackground(Color.black);
但是我得到了错误
colors cannot be resolved or is not a field.
我确信有一个简单的方法来解决我的问题
谢谢
谢谢大家的帮助!我应该在我的问题中提供更多的细节,它实际上与GUI中的按钮有关。
非常感谢Igor Rodriguez,他的答案是正确的:)假设您的意思是
java.awt.Color
,那么您的数组Color
不是该类字段。使用:
setBackground(colors[1]);
在这种情况下,您可以使用:
Color[] colors = {Color.BLACK, Color.YELLOW, Color.ORANGE};
只需使用数组表示法:
setBackground(colors[0]);
setBackground(colors[1]);
setBackground(colors[2]);
但我想你想要这样的东西:
setBackground(Color.colors[1]);
object.setBackground(Color.black);
其中object是要更改颜色的元素。
(假设您正在使用)您的数组不能是字符串类型。它必须是以下颜色类型:
Color[] colors = new Color[] {Color.BLACK, Color.YELLOW, Color.ORANGE};
setBackground(colors[0]);
将其用作背景(颜色[1]);1) 是
Color
=java.awt.Color
?2) setBackground
采用什么参数类型(java.awt.Color
?)?我们需要更多的代码来告诉您问题所在。此的类型是什么?这个数组是在哪里定义的?setBackground()
在何处以及如何定义?颜色是在哪里定义的,是如何定义的?在java中,通过字符串名获取颜色实例并不容易。此处列出了最接近的属性-哪个属性?证明错误是由引号引起的。我不相信。它与GUI中的按钮无关。错误是因为您在颜色对象中没有“颜色”属性。当然数组可以是String
,但您提供的代码可能是OP想要的。@Dukeling:我不是说不能创建String类型的数组。我的意思是,他真的不应该使用字符串数组来做这件事,因为那样会不必要地使代码复杂化。:)我不是说你的意思不正确,只是你说的方式有点不对劲。这可能更好:“假设setBackground
将Color
作为一个参数,并且Color
这里是java.awt.Color
,那么你的数组不应该是String
类型,它应该是Color
类型(否则事情会不必要地复杂)。我没有这样做是因为那样会弄乱询问者。你假设他知道有不同类型的颜色。大多数人只知道java.awt.Color,这是因为它在Swing中使用。你说得对,我确实假设他试图设置组件的背景色,并且他试图使用默认颜色列表。如果有人以另一种方式问我这个问题,我就不会做出这样的错事。谢谢