paint () no applet java é chamado duas vezes sem motivo
Existe um motivo comum pelo qual o método paint () pode ser chamado duas vezes sem pretender. Eu tenho o seguinte código
public void paint(Graphics g)
{
//Graphics2D gg;
//gg=(Graphics2D) g;
drawMatrix(g);
}
private void drawMatrix(Graphics g) {
int side = 40;
hex hexagon=new hex();
for(int i = 0; i<9; i++)
for(int k = 0; k<9; k++){
g.setColor(Color.lightGray);
g.fill3DRect(i*side,k*side, side, side, true);
if (matrix[i][k]!=null){System.out.println("i is "+i+" k is "+k);
g.setColor(Color.black);hexagon.DrawHexfromMatrix(g, i, k, Color.black);}
}
}
hex é uma classe que estende o polígono (para modelar uma figura hexagonal), e o DrawHexfromMatrix é uma função que desenha um hexágono do índice da matriz que é desenhada (coloque o hexágono no slot de uma matriz). Eu posso fornecer todo o código, se você acha que ajuda, mas por enquanto não entendo por que o system.out.println é executado duas vezes (por exemplo, se [1] [2] e [2] [3] não são null, ele imprimirá:
i is 1 k is 2
i is 2 k is 3
i is 1 k is 2
i is 2 k is 3
Acho que isso também afeta meu desenho, porque às vezes, embora um elemento exista em [i] [k] não seja desenhado (a matriz é uma matriz hexadecimal).
Edit mais tarde: É possível de alguma forma que g.fill3DRect (i * lado, k * lado, lado, lado, verdadeiro); para pintar demais os hexágonos que estou tentando pintar com hexagon.DrawHexfromMatrix (g, i, k, Color.black); ???