У меня есть ArrayList с именем theLayers
, в котором хранятся наборы точек (слоев), и я бы хотел, чтобы каждый слой имел отдельный цвет.На каждой итерации цикла for я устанавливаю новый цвет графики и рисую точки каждого отдельного слоя.Однако после отладки я заметил, что для точек задан последний сгенерированный цвет.
Я попытался разместить случайное назначение цветов в разных местах кода, и я отладил код, чтобычто цвета действительно меняются во время каждой итерации.
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.util.ArrayList;
import javax.swing.JPanel;
public class Drawer extends JPanel {
private ArrayList<ArrayList<Point>> theLayers;
public Drawer() {
this(new ArrayList<ArrayList<Point>>());
}
public Drawer(ArrayList<ArrayList<Point>> coordinates) {
this.theLayers = new ArrayList<ArrayList<Point>>(coordinates);
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setStroke(new BasicStroke(3));
for(ArrayList<Point> coordinates:theLayers) {
int R = (int) (Math.random( )*256);
int G = (int)(Math.random( )*256);
int B= (int)(Math.random( )*256);
Color randomColor = new Color(R, G, B);
g2d.setColor(randomColor);
for (int i = 0; i < coordinates.size(); i++) {
g2d.drawLine(coordinates.get(i).x, coordinates.get(i).y,
coordinates.get(i).x, coordinates.get(i).y);
}
}
}
}
Я хочу, чтобы цвет каждого слоя был разным, а не один и тот же цвет.Спасибо.