Я использую прослушиватель JButton для рисования разных фигур. Он отлично работает, но как сохранить ранее нарисованные фигуры на панели все время? Потому что, когда другая кнопка нажала предыдущие формы, ушла.Показать все нарисованные фигуры на JPanel
jButton1.setText("Button1");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jButton2.setText("Button2");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
s = evt.getActionCommand();
repaint();
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
s = evt.getActionCommand();
repaint();
}
....... и метод paintComponent является
protected void paintComponent(Graphics g) {
super.paintComponent(g);
System.out.println("====>>> " + s);
switch (s) {
case "Button1":
g.drawRoundRect(20,20,40,40,100,200);
break;
case "Button2":
g.drawRect(0, 0, 200, 200);
break;
default:
g.drawOval(40, 40, 100, 100);
Здесь Строка s содержит нажатия кнопки заголовка.
Основная проблема заключается в том, что для каждого цикла красок вам нужно будет восстановить графику до того, что вам нужно. То есть вам нужно будет перекрасить все, что вы ранее нарисовали (и хотите сохранить) – MadProgrammer