2013-10-02 88 views
1

我試圖創建一個包含單獨的不同顏色的數組。當給出範圍'n'時,顏色數組將自動創建。它是如下:創建具有不同顏色的顏色陣列

variable n = 2; 
colourarrray = [red,green]; 

variable n = 4; 
colourarrray = [red,green,blue,yellow]; 

什麼是最簡單的方法來產生這樣的顏色數組?

+0

哪裏是你的Java代碼? – 2013-10-02 14:10:48

+0

您可以使用[LinearGradientPaint]創建一個色譜,如[本答案](http://stackoverflow.com/a/6996263/418556)所示。然後,您可以使用循環獲取相關顏色,並遞增用於獲取漸變中相應顏色的「x」值。 –

回答

0

一個枚舉。因爲它是可擴展的。

public enum Colors 
{ 
    BLACK(255, 255, 255), 
    WHITE(0, 0, 0); 

    private int red; 
    private int green; 
    private int blue; 

    private Colors(final int red, final int green, final int blue) 
    { 
     this.red = red; 
     this.green = green; 
     this.blue = blue; 
    } 

    public int red() 
    { 
     return red; 
    } 

    public int green() 
    { 
     return green; 
    } 

    public int blue() 
    { 
     return blue; 
    } 
} 

然後dinamically將它們添加到List<Colors>,因爲你需要它們。

0

因爲你沒有把任何規範,附加的相關信息或任何你的問題,我有什麼好,現在做的事:

private java.util.Random rnd = new java.util.Random(); 

public java.awt.Color[] getColors(int num) { 
    java.util.List<java.awt.Color> colors = new java.util.ArrayList<>(num); 
    int i = 0; 
    while (i++ < num) { 
     colors.add(new java.awt.Color(rnd.nextInt(255), rnd.nextInt(255), rnd.nextInt(255), 100)); 
    } 
    java.awt.Color[] array = colors.toArray(new java.awt.Color[num]); 
    return array; 
}