在此方法中,我创建了一个字符串变量,并将其移动到另一个变量中。
private void produceRainbow() {
String color = "RED";
produceArc(color);
}那里有更多的代码,但这并不重要(本质上,将字符串更改为其他颜色)。
下一步这个方法:
private void produceArc(String color) {
GOval arc = new GOval(leftX, upperY, rightX, lowerY);
arc.setColor(Color.color);
}(忽略变量leftX、upperY、rightX、lowerY)
在这里,我想将颜色设置为字符串。所以我希望它成为arc.setColor(Color.RED)
当我编译时,我得到这个错误:
Program.java:89: cannot find symbol
symbol : variable color
location: class java.awt.Color
arc.setColor(Color.color);有没有可能做我想做的事?如果是这样,我做错了什么?
(如果你很好奇,我为每个弧(红色,蓝色,绿色等,都有自己的方法)做了一个单独的方法,这是可行的,但我想知道我是否可以只使用一个接受变量的方法,这使得代码变得更短)
发布于 2013-11-02 04:58:19
详述我给出的评论。
你可以直接传递Color.RED或者使用Color.FromName(字符串名);
推荐方法:
要传递Color.RED,您的方法将如下所示:
private void produceRainbow() {
Color color = Color.RED;
produceArc(color);
}和:
private void produceArc(Color color) {
GOval arc = new GOval(leftX, upperY, rightX, lowerY);
arc.setColor(color);
}方法2
如果出于某种原因,您要使用FromName方法,则应按如下方式应用它:
private void produceRainbow() {
String color = "Red";
produceArc(color);
}和:
private void produceArc(String color) {
GOval arc = new GOval(leftX, upperY, rightX, lowerY);
arc.setColor(Color.FromName(color));
}请注意,最后一种方法仅适用于C#,不适用于Java。(我不确定您使用的是Java还是C#)
https://stackoverflow.com/questions/19734981
复制相似问题