0

I need to set a JPanel background with light colors only in order not to cover the text (in bold black).

At this moment I have this:

import java.util.Random;

....

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

But it generates "any" random color. How can I do that?

Thanks

4

3 回答 3

8

Color有一个构造函数,它接受红色、绿色和蓝色的三个值。如果你给它们中的每一个一个从 100 到 255 的随机值,你只会得到浅色。

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

于 2013-07-18T09:49:44.433 回答
4

从 RGB 值创建颜色,并确保 R、G 和 B 足够大以使整体颜色变亮。[0, 0, 0] 是黑色的。[255, 255, 255] 是白色的。因此,您可以生成一种颜色,其 R、G 和 B 的值是 200 到 255 之间的随机值。

于 2013-07-18T09:48:00.167 回答
2

我建议不要使用随机颜色作为背景。它会打印丑陋的背景颜色并使您的程序看起来很草率。

我建议你做一个漂亮的颜色列表,并在列表中随机选择一种颜色。

您可以从下面的网页中找到漂亮的颜色列表。

http://colorschemedesigner.com/

http://www.colorcombos.com/

http://www.color-swatches.com/top-swatches.html

于 2013-07-18T09:55:20.243 回答