我想选择随机颜色,但只能选择它们之间的颜色(红色,蓝色,绿色和黄色),这里有一些我正在尝试的代码。
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给出了随机数。但我只是想在颜色之间进行调整。
感谢。
答案 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 )
会在指定的r
和min
之间为您提供max
值。因此,您可以按如下方式选择范围:
int r = (int) Math.random() * ( 255 - 100 )
会给你一个100到255之间的红色值。当然,你可以在你的头脑中进行减法,然后放
int r = (int) Math.random() * ( 155 )
您也可以为绿色和蓝色重复此值。
如果您愿意,也可以使用浮点值。 int将简单地截断结果中的十进制值。
编辑:看到你到目前为止,你绝对应该使用float,而不是int。