完全にランダムな色だけを使うのではありません。あなたは完全に異なる彩度と明るさを得るでしょう、それは明らかに醜いように見えます。
彩度(鮮やかな色には高い値を選択)と明るさを修正し、ランダムな色相値を選択することもできますが、ほぼ同じ色の2つの連続したパイスライスを取得するリスクがあります。
この質問への回答に示されているように、一連の分散色相値を計算します。
以下の回答を再投稿する
import java.awt.*;
public class TestComponent extends JPanel {
int numCols = 6;
public void paint(Graphics g) {
float h = 0, dh = (float) getHeight() / numCols;
Color[] cols = getDifferentColors(numCols);
for (int i = 0; i < numCols; i++) {
g.setColor(cols[i]);
g.fillRect(0, (int) h, getWidth(), (int) (h += dh));
}
}
public static Color[] getDifferentColors(int n) {
Color[] cols = new Color[n];
for (int i = 0; i < n; i++)
cols[i] = Color.getHSBColor((float) i / n, 1, 1);
return cols;
}
public static void main(String s[]) {
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(new TestComponent());
f.setSize(400, 400);
f.setVisible(true);
}
}
30を超える色が必要な場合は、もちろん明るさや彩度も変更できます。たとえば、暗い色を10色、中間色を10色、明るい色を10色にすることができます。