为什么这个鼠标响应事件画不出来点?

public class MyMouseAdapter {
public static void main(String[] args){
new MyQFrame("drawing.....");
}

}
class MyQFrame extends Frame{
ArrayList points=null;
MyQFrame(String s) {
super(s);
this.setBackground(new Color(255,204,204));
this.setLocation(300,300);
this.setSize(300,300);
setVisible(true);
this.addMouseListener(new Monitor());

}
public void paint(Graphics g){
Iterator i=points.iterator();
while(i.hasNext()){
Point p=(Point)i.next();
g.setColor(Color.BLUE);
g.fillOval(p.x,p.y,20,20);
}

}

public void addPoint(Point p){
points.add(p);
}
}
class Monitor extends MouseAdapter{
public void mouseClicked(MouseEvent e){
MyQFrame f=(MyQFrame)e.getSource();
f.addPoint(new Point(e.getX(),e.getY()));
f.repaint();
}
}

2个回答

调试,看看有没有进入到绘图代码,另外没看到你初始化points啊,是不是空值报错了画不出来

 class MyQFrame extends Frame{
ArrayList points=new ArrayList();//改一下这一行
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐