#java #colors #render
#java #Цвет #визуализация
Вопрос:
У меня работает каждая часть этой программы, за исключением цветов. Прямо сейчас я перерисовываю любой случайный цвет, и мне нужно, чтобы он окрашивал линии только в желтый, зеленый или синий. Может кто-нибудь направить меня в правильном направлении, пожалуйста?
`package ColoredLines;
import java.awt.Graphics;
import java.util.Random;
import javax.swing.JPanel;
import java.awt.Color;
@SuppressWarnings("serial")
public class ColoredLines extends JPanel {
private final Random rand = new Random();
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Random rand = new Random();
super.paintComponent(g);
this.setBackground(Color.BLACK);
for(int i = 10; i < 410; i = 20){
for(int j = 0; j < 410; j = 410){
g.setColor(new Color(rand.nextInt(256), rand.nextInt(256), rand.nextInt(256)));
g.fillRect(i, j, 10, 410);
}
}
}
}
`
Комментарии:
1. Создайте массив этих цветов и выполните случайный генератор для выбора между этими цветами
2. о, хорошо, спасибо. Я попробую это прямо сейчас.
3. Извините, если это глупый вопрос, но теперь у меня есть массив из 3 цветов, как бы я случайно вызвал его в своем цикле for?
4. может быть, вы могли бы выполнить цикл for и изменить на 3 и увеличить на 1
Ответ №1:
Создайте ArrayList из трех цветов: ArrayList<Color> colors = new ArrayList<Color>();
Добавьте три цвета с помощью: colors.add(new Color(r,g,b)
Чтобы выбрать случайный цвет, используя:
Random rand = new Random();
Color randomColor = colors[rand.nextInt(2)];
Примечание: в rand.nextInt(2); случайное число может быть равно 0, поэтому возможные числа равны трем (0,1,2).