如何更改颜色通道的值

时间:2017-05-20 22:27:02

标签: java colors

我正在制作一个程序,我试图避免多个红色(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;
        }

2 个答案:

答案 0 :(得分:2)

声明

color.getBlue() = x;

毫无意义。这与试图说“0 = x;”是一样的。

如果color引用允许您更改其颜色通道的类的对象,则应尝试:

color.setBlue(x);

但是,如果colorjava.awt.Color,则无效,因为java.awt.Color是不可变的。您唯一的选择就是创建一个像这样的新Color对象:

color = new Color(255, x, x);

答案 1 :(得分:1)

首先

color.getBlue() = ...

是非法的。您无法分配到函数调用

其次,为了帮助您解决问题:我建议您不要随机生成整个RGB范围内的颜色列表,而是创建一些预设颜色,将它们放入数组中,然后通过获取颜色创建随机颜色随机索引到你的颜色数组