Boa tarde povo do GUJ,
Eu to querendo fazer um programa de desenho estilo CorelDraw e queria saber de vocês experts qual a melhor abordagem. Eu to fazendo da seguinte maneira:
- Criei uma classe abstrata Ferramentas, para abstrair todas as minhas ferramentas(lápis, polígono, etc.) e o modo que elas “se desenham”.
- Estou desenhando diretamente no panel e não em um ImageBuffer.
Na minha classe Lápis por exemplo eu recebo o Graphics do panel para poder desenhar nele. E também tenho 2 métodos:
public abstract void mouseDragged(MouseEvent evt);
public abstract void mouseClicked(MouseEvent evt);
Dentro desses métodos eu especifico como pegar os pontos para o desenho, já que cada ferramenta usa formas de desenhar diferentes, por exemplo, no Lápis ao arrastar o mouse você desenha uma linha exatamente no caminho do mouse, mas no Polígono, você só desenha a linha quando o usuário clica em dois pontos.
Queria a opinião de vocês para saber qual a melhor abordagem, por exemplo desenhar em panel ou desenhar em um buffer? Quero colocar funcionalidades no programa ainda mas não sei exatamente qual padrão aplicar nesse caso para que o sistema não acabe virando uma bola de neve.
Obrigado.