galera
to com um problema aqui
tenho que fazer desenhos em um painel. O usuario passa as coordenadas e eu desenho com drawLine a partir das coordenadas passadas
aí quando eu clico no botao "Desenhar", eu chamo o método repaint() pra esse meu painel
só que ele apaga o desenho antigo
como fazer pra manter tudo o que ja foi desenhado?
aí vão as classes pra qquer dúvida
import java.awt.Graphics;
import java.awt.Color;
import javax.swing.JPanel;
public class PainelDesenho extends JPanel {
private int x1;
private int y1;
private int x2;
private int y2;
public PainelDesenho() {
setBackground(Color.BLACK);
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.RED);
g.drawLine(x1,y1,x2,y2);
}
public int getX1() {
return x1;
}
public void setX1(int x1) {
this.x1 = x1;
}
public int getX2() {
return x2;
}
public void setX2(int x2) {
this.x2 = x2;
}
public int getY1() {
return y1;
}
public void setY1(int y1) {
this.y1 = y1;
}
public int getY2() {
return y2;
}
public void setY2(int y2) {
this.y2 = y2;
}
}
import java.awt.FlowLayout;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JLabel;
public class PainelBotoes extends JPanel {
private JButton botaoCirculo;
private JTextField fieldX1;
private JTextField fieldY1;
private JTextField fieldX2;
private JTextField fieldY2;
private JLabel labelX1;
private JLabel labelY1;
private JLabel labelX2;
private JLabel labelY2;
private PainelDesenho painelDesenho;
public PainelBotoes(PainelDesenho painelDesenho) {
this.painelDesenho = painelDesenho;
setLayout(new FlowLayout());
//setLayout(new BorderLayout(5,5));
setBackground(Color.WHITE);
botaoCirculo = new JButton("Desenhar Círculo");
botaoCirculo.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
PainelBotoes.this.painelDesenho.setX1(Integer.parseInt(fieldX1.getText()));
PainelBotoes.this.painelDesenho.setY1(Integer.parseInt(fieldY1.getText()));
PainelBotoes.this.painelDesenho.setX2(Integer.parseInt(fieldX2.getText()));
PainelBotoes.this.painelDesenho.setY2(Integer.parseInt(fieldY2.getText()));
PainelBotoes.this.painelDesenho.repaint();
}
}
);
labelX1 = new JLabel("x1:");
labelY1 = new JLabel("y1:");
labelX2 = new JLabel("x2:");
labelY2 = new JLabel("y2:");
fieldX1 = new JTextField(5);
fieldY1 = new JTextField(5);
fieldX2 = new JTextField(5);
fieldY2 = new JTextField(5);
add(labelX1);
add(fieldX1);
add(labelY1);
add(fieldY1);
add(labelX2);
add(fieldX2);
add(labelY2);
add(fieldY2);
add(botaoCirculo);
}
}