Tenho um componente que criei, onde ele possui um Rectangle2D, um RoundRectangle2D ou um Line2D.
Na outra classe eu posso informar a mudança da cor desse componente. Até ai tudo bem. O problema é o seguinte: na classe eu posso mover esse componente. Quando eu aplico uma cor nele, funciona, porém se eu mover o componente ele perde a cor. e volta a ser como antes. Alguma idéia do que possa ser. Segue o código:
paint do componente:
protected void paintComponent(Graphics g) {
g2d = (Graphics2D) g.create();
if(retangulo != null) {
retangulo.setRect(0,0,this.getWidth()-1,this.getHeight()-1);
g2d.draw(retangulo);
} else if (linha != null) {
linha.setLine(this.getX(), this.getY(), this.getWidth()-1, this.getHeight()-1);
g2d.draw(linha);
} else {
retanguloRound.setRoundRect(0,0,this.getWidth()-1,this.getHeight()-1,25,20);
g2d.draw(retanguloRound);
}
}
método para alterar a cor do retangulo.
public void setCorRetangulo(Color cor) {
g2d.setColor(cor);
g2d.fill(retangulo);
repaint();
}