选择4之间的随机颜色?

时间:2014-04-26 18:56:09

标签: java eclipse swing colors awt

我想选择随机颜色,但只能选择它们之间的颜色(红色,蓝色,绿色和黄色),这里有一些我正在尝试的代码。

public class LittleBall extends JPanel {

private Random random = new Random();
private float r = random.nextFloat();
private float g = random.nextFloat();
private float b = random.nextFloat();

.....

public void paint (Graphics g) {

Color randomColor = new Color(r, this.g, b);

g.setColor(randomColor);

    }

}

但这只是给世界上的每一种颜色o.O,当然因为r,g和b变量的nextFloat给出了随机数。但我只是想在颜色之间进行调整。

感谢。

4 个答案:

答案 0 :(得分:2)

创建颜色数组并随机获取颜色。

Color[] colors = new Color[] { Color.RED, Color.GREEN, Color.BLUE, Color.YELLOW };

Color randomColor = colors[(int)( Math.random() * 4)];

// or try this one
//Color randomColor = colors[new Random().nextInt(4)];

答案 1 :(得分:0)

 Random generator = new Random(); 
  float i = generator.nextInt(4)+1;

答案 2 :(得分:0)

使用如下

  Random rand = new Random();

private int r = rand.nextInt(4) + 1;
private int g =  rand.nextInt(4) + 1;
private int b =  rand.nextInt(4) + 1;
private int y =  rand.nextInt(4) + 1;

    Color randomColor = new Color(r, g, b,y);

    g.setColor(randomColor);

答案 3 :(得分:0)

Math.random()返回0到1之间的随机数。通过将此值乘以数字范围,您可以选择最小值和最大值之间的任意值。然后,您可能需要将其强制转换为int,以获得R,G和/或B的实际值。

int r = (int) Math.random() * ( max - min )

会在指定的rmin之间为您提供max值。因此,您可以按如下方式选择范围:

int r = (int) Math.random() * ( 255 - 100 )

会给你一个100到255之间的红色值。当然,你可以在你的头脑中进行减法,然后放

int r = (int) Math.random() * ( 155 )

您也可以为绿色和蓝色重复此值。

如果您愿意,也可以使用浮点值。 int将简单地截断结果中的十进制值。

编辑:看到你到目前为止,你绝对应该使用float,而不是int。