Allora io ho un JPanel sul quale, tramite il paintComponent, vengono disegnati dei quadrati 30x30 a delle x e y prestabilite, e ho bisogno che tramite un metodo
paintRectangles(int[]x,int[]y,Color[]colors)
lui colori il rettangolo {x
,y,30,30} del colore colors
Ho provato a fare così:
public void paintRectangles(int[]x,int[]y,Color[]colors){
Graphics g = getGraphics();
for(int i=0;i<x.length;i++){
g.setColor(colors[i]);
g.fillRect(x[i], y[i], 30, 30);
g.setColor(Color.black); //bordo nero
g.drawRect(x, y, 30, 30);
}
paint(g);
}
Però:
1. se faccio l'override del paintComponent sul JPanel e inizializzo i rettangoli direttamente dal paintComponent, quelli che disegno col paintRectangles vengono sempre portati in secondo piano, li vedo per un decimo di secondo e poi spariscono sotto quelli vecchi
2. se invece elimino l'override del paintComponent e inizializzo tutti i rettangoli con il metodo paintRectangles e poi li aggiorno sempre con lo stesso metodo viene disegnato tutto correttamente, ma appena faccio un repaint() o semplicemente ridimensiono la mia finestra, sparisce tutto e sono daccapo.
Non so se mi sono spiegato, ovviamente se così non fosse chiedimi pure