我正在制作一个程序,我试图避免多个红色(255,0,0)。添加一些变化并使其不太可能发生,我得到(255,0,0)我试图做的是这个,但我无法将随机变量分配给特定的颜色通道。我怎么能这样做?
int x = rand.nextInt(1) + 8;
if(color.getRed() == 255 && color.getBlue() == 0 && color.getGreen() == 0){
color.getBlue() = x;
color.getGreen() = x;
}
答案 0 :(得分:2)
声明
color.getBlue() = x;
毫无意义。这与试图说“0 = x;”是一样的。
如果color
引用允许您更改其颜色通道的类的对象,则应尝试:
color.setBlue(x);
但是,如果color
是java.awt.Color
,则无效,因为java.awt.Color
是不可变的。您唯一的选择就是创建一个像这样的新Color对象:
color = new Color(255, x, x);
答案 1 :(得分:1)
首先
color.getBlue() = ...
是非法的。您无法分配到函数调用
其次,为了帮助您解决问题:我建议您不要随机生成整个RGB范围内的颜色列表,而是创建一些预设颜色,将它们放入数组中,然后通过获取颜色创建随机颜色随机索引到你的颜色数组