如下为我的程序:
package view;import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.List;import javax.swing.JFrame;public class OulaForm extends JFrame{
private List liststaticpoint;//边界4点坐标 
private List listallpoints;//矩形内所有定点坐标 X,Y
private Point currentpoint;//上次点击位置坐标
private ppp x;
public void aaa(){
x=new ppp(liststaticpoint,listallpoints,currentpoint);
x.setSize(610, 610);
x.setLocation(0, 0);
x.addMouseListener(x);
this.add(x);
this.setVisible(true);
}
public static void main(String[] args) {
OulaForm win = new OulaForm();
win.setSize(610, 610);
win.setLocation(150, 80);
win.aaa();
}
}----------------------------------------------package view;import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.List;import javax.swing.JFrame;
import javax.swing.JPanel;public class ppp  extends JPanel implements MouseListener{
public List liststaticpoint;//边界4点坐标 
public List listallpoints;//矩形内所有定点坐标 X,Y
public Point currentpoint;//上次点击位置坐标
//画图
public ppp(List liststaticpoint,List listallpoints,Point currentpoint){
this.listallpoints=listallpoints;
this.liststaticpoint=liststaticpoint;
this.currentpoint=currentpoint;
}
public void paint(Graphics g) {
Graphics gg=g.create();
Graphics2D g2d = (Graphics2D)gg;
g2d.setStroke(new BasicStroke(2));
gg.finalize();
gg.setColor(Color.gray);
gg.drawLine(100, 100, 610, 610);
if(currentpoint!=null){
gg.setColor(Color.cyan);
System.out.println((currentpoint.x)+"-------"+(currentpoint.y));
gg.drawRect(currentpoint.x-4, currentpoint.y-4, 4, 4);
}
gg.dispose();
}
public void mouseClicked(MouseEvent e) {//鼠标单击
currentpoint=e.getPoint();
repaint();
}
@Override
public void mousePressed(MouseEvent e) {//鼠标按下

}
@Override
public void mouseReleased(MouseEvent e) {//鼠标弹起

}
@Override
public void mouseEntered(MouseEvent e) {//鼠标进入组件

}
@Override
public void mouseExited(MouseEvent e) {//鼠标离开组件

}
public void reflash(){
this.setVisible(false);
this.setVisible(true);
}
}  问题:当我鼠标触发事件,点击panel中某一位置后,我重新设置参数,调用repaint方法重新绘图,但是原图像也在,导致原图与新图重叠,如下截图 。不懂为什么。求解答!