Boa tarde povo do GUJ,
Estou tentando fazer uma ferramenta borracha que remove os pontos de uma forma, para fazer isso criei os seguintes metodos:
//Para desenhar o quadrado branco da borracha
public void mouseMoved(MouseEvent e) {
gp.reset();
gp.moveTo(e.getX()-metadeTamanho, e.getY()-metadeTamanho);
gp.lineTo(e.getX()+metadeTamanho, e.getY()-metadeTamanho);
gp.lineTo(e.getX()+metadeTamanho, e.getY()+metadeTamanho);
gp.lineTo(e.getX()-metadeTamanho, e.getY()+metadeTamanho);
gp.closePath();
this.areaDesenho.repaint();
System.out.println("Mouse moved");
}
//Para remover os pontos
public void mousePressed(MouseEvent e) {
for(int i = 0; i < this.areaDesenho.getFormas().size(); i++)
{
int teste = 0;
FormaGeometrica forma = this.areaDesenho.getFormas().get(i);
for(int j = 0; j < forma.getPontos().size(); j++)
{
Point ponto = forma.getPontos().get(j);
if(gp.contains(ponto.getX(),ponto.getY()))
{
forma.removePontos(ponto);
System.out.println(ponto.x+","+ponto.y);
}
}
}
this.areaDesenho.repaint();
}
O problema é que ele não remove todos os pontos dentro do quadrado no primeiro click.Ainda não consegui explicar o que está acontecendo, parece ser um erro bobo mas preciso que outra pessoa olhe o código.
Obrigado!