看了马士兵老师的视频,做的程序。总是报错。说Point构造函数有问题这个程序是在Frame窗口上用鼠标画点的小程序,帮忙看看问题在哪?import java.awt.*;
import java.awt.event.*;
import java.util.*;public class MyMouseAdapter {      //主函数
public static void main(String args[]) {
new MouseFrame("Drawing!");
}
}class MouseFrame extends Frame {   //MouseFrame继承Frame,构建窗口
ArrayList points = null;
MouseFrame(String s) {
super(s);
points = new ArrayList();
setLayout(null);
setBounds(300,300,400,300);
this.setBackground(new Color(204,204,255));
setVisible(true);
addMouseListener(new MouseMonitor());

}

public void paint(Graphics g) {    //画点paint方法的重写
Iterator i = points.iterator();
while(i.hasNext()) {
Point p = (Point)i.next();
g.setColor(Color.BLUE);
g.fillOval(p.x,p.y,10,10);
}
}

public void addPoint(Point p) { //新增点的坐标方法addPoint
points.add(p);
}
}class MouseMonitor extends MouseAdapter {   MouseMonitor 继承  MouseAdpter,并且重写了mousePressed鼠标按钮的方法 
public void mousePressed(MouseEvent e) {
MouseFrame m = (MouseFrame)e.getSource();
m.addPoint(new Point(e.getX(),e.getY()));
m.repaint();
}
}

解决方案 »

  1.   

    试了一下,程序没有任何问题.除了下面这行.你的注释标记呢?
    class MouseMonitor extends MouseAdapter {  MouseMonitor 继承  MouseAdpter,并且重写了mousePressed鼠标按钮的方法 
      

  2.   

    但是我运行还是有错误。
    MyMouseAdapter.java:29: 无法将 java.awt.Graphics 中的 fillOval(int,int,int,int)
    应用于 (double,double,int,int)
                            g.fillOval(p.x,p.y,10,10);
                             ^
    MyMouseAdapter.java:41: 找不到符号
    符号: 构造函数 Point(int,int)
    位置: 类 Point
                    m.addPoint(new Point(e.getX(),e.getY()));
                               ^
      

  3.   

    我估计你自己定义过一个叫Point的类,类的属性x,y你定义成了double类型了,并且没有定义Point(int int)这样的构造方法。
    你自己定义的类和jdk的Point类冲突了。把你自己的类Point.class移走或者删除掉就可以了.