2013-07-18 171 views
0

我需要设置一个JPanel背景与浅色颜色只为了不覆盖文本(粗体黑色)。java只产生随机“浅色”颜色

在这一刻我有这样的:

import java.util.Random; 

.... 

private Random random = new Random(); 
private JPanel panel = new JPanel(); 
panel.setBackground(new Color(random.nextInt())); 

但它生成 “任何” 颜色随机。 我该怎么做?

由于

回答

8

Color有一个构造函数,它为红色,绿色和蓝色取三个值。如果你给他们每个人一个从100左右到255的随机值,你只会得到浅色。

HSB系统的使用可能会给出更好的结果,例如, new Color(Color.HSBtoRGB((float) Math.random(), (float) Math.random, 0.5F + ((float) Math.random())/2F));

+0

得益于它完美 – Frank

4

创建颜色from RGB values,并确保R,G和B是足够大,以使整体颜色的光。 [0,0,0]是黑色的。 [255,255,255]是白色的。因此,例如,您可以生成一个颜色,其中R,G和B的值是200到255之间的随机值。