在Java中创建随机颜色?

2022-08-31 14:13:56

我想在Java应用程序中的JPanel上绘制随机的彩色点。有没有办法创建随机颜色?


答案 1

使用随机库:

import java.util.Random;

然后创建一个随机生成器:

Random rand = new Random();

由于颜色分为红绿和蓝,您可以通过创建随机原色来创建新的随机颜色:

// Java 'Color' class takes 3 floats, from 0 to 1.
float r = rand.nextFloat();
float g = rand.nextFloat();
float b = rand.nextFloat();

然后,要最终创建颜色,请将原色传递到构造函数中:

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

您还可以使用此方法创建不同的随机效果,例如创建随机颜色,更加强调某些颜色...通过较少的绿色和蓝色以产生“粉红色”随机颜色。

// Will produce a random colour with more red in it (usually "pink-ish")
float r = rand.nextFloat();
float g = rand.nextFloat() / 2f;
float b = rand.nextFloat() / 2f;

或者,为了确保只生成“浅色”颜色,您可以生成始终>每个颜色元素的 0.5 的颜色:

// Will produce only bright / light colours:
float r = rand.nextFloat() / 2f + 0.5;
float g = rand.nextFloat() / 2f + 0.5;
float b = rand.nextFloat() / 2f + 0.5;

该类还可以使用各种其他颜色函数,例如使颜色更亮:Color

randomColor.brighter();

可以在此处阅读该课程的概述:http://download.oracle.com/javase/6/docs/api/java/awt/Color.htmlColor


答案 2

随机 RGB 值的单行:

new Color((int)(Math.random() * 0x1000000))

推荐