2013-10-02 6 views
1

Я пытаюсь создать массив, который включает в себя отдельные цвета. Цветовой массив будет создан автоматически, если задан диапазон «n». Это что-то вроде:Создание массива цветов с различными цветами

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

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

Что такое самый простой способ создания такого массива цветов?

+0

Где ваш код Java? –

+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; 
    } 
} 

Затем динамически добавлять их в 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; 
} 
Смежные вопросы