Bom pessoal, meu problema é o seguinte: estou montando um aplicativo onde o usuário pode desenhar retangulos na tela. Só que se ele tentar adicionar dois retangulos na tela ele não vai conseguir, pois quando ele for desenhar o segundo o primeiro some. O que eu estava pensando em fazer era guardar esses retangulos em um ArrayList, só que quando eu dou um jPanel.add(objetoDaClasseGraphic) ele diz que só aceita Componentes.
Alguma idéia de como eu jogar os retangulos no JPanel atravéz do ArrayList? Ou talvez devo usar outra lógica? Abaixo segue o código:
Método para repintar o JPanel:
protected void paintComponent(Graphics g) {
for(Graphics graph : objetos) {
jPanel.add(graph);
}
super.paintComponent(g);
if(cantoArredondado) {
g.drawRoundRect(xInicial,yInicial,xFinal-xInicial,yFinal - yInicial, 25,20);
g.fillRoundRect(xInicial,yInicial,xFinal-xInicial,yFinal - yInicial, 25,20);
} else {
g.drawRect(xInicial,yInicial,xFinal-xInicial,yFinal - yInicial);
g.fillRect(xInicial,yInicial,xFinal-xInicial,yFinal - yInicial);
}
objetos.add(g);
}
Ação que ocorre ao arrastar o mouse:
public void mouseDragged(MouseEvent arg0) {
if(ativarDesenhoRetangulo) {
if(xInicial == Integer.MIN_VALUE && yInicial == Integer.MIN_VALUE) {
xInicial = arg0.getX();
yInicial = arg0.getY();
} else {
xFinal = arg0.getX();
yFinal = arg0.getY();
}
jPanel.repaint();
}
}