import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class MyMouseAdapter{
  public static void main(String args[]) {
    new MyFrame("drawing...");
  }
}class MyFrame extends Frame {
  ArrayList points = null;
  MyFrame(String s) {
    super(s);
    points = new ArrayList(); 
    etLayout(null);
    setBounds(300,300,400,300); 
    this.setBackground(new Color(204,204,255));
    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,10,10);
    }
  }
  
  public void addPoint(Point p){
    points.add(p);
  }
}class Monitor extends MouseAdapter {
  public void mousePressed(MouseEvent e) {
    MyFrame f = (MyFrame)e.getSource();
    f.addPoint(new Point(e.getX(),e.getY()));
    f.repaint();
  }
}
结果:
MyMouseAdapter.java:13: 找不到符号
符号: 构造函数 Frame(java.lang.String)
位置: 类 Frame
    super(s);
    ^
MyMouseAdapter.java:15: 找不到符号
符号: 方法 etLayout(<nulltype>)
位置: 类 MyFrame
    etLayout(null);
    ^
MyMouseAdapter.java:16: 找不到符号
符号: 方法 setBounds(int,int,int,int)
位置: 类 MyFrame
    setBounds(300,300,400,300);
    ^
MyMouseAdapter.java:17: 找不到符号
符号: 方法 setBackground(java.awt.Color)
位置: 类 MyFrame
    this.setBackground(new Color(204,204,255));
        ^
MyMouseAdapter.java:18: 找不到符号
符号: 方法 setVisible(boolean)
位置: 类 MyFrame
    setVisible(true);
    ^
MyMouseAdapter.java:19: 找不到符号
符号: 方法 addMouseListener(Monitor)
位置: 类 MyFrame
    this.addMouseListener(new Monitor());
        ^
MyMouseAdapter.java:40: 找不到符号
符号: 方法 repaint()
位置: 类 MyFrame
    f.repaint();
     ^
注意:MyMouseAdapter.java 使用了未经检查或不安全的操作。
注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。
7 错误

解决方案 »

  1.   

    还是用泛型容器和swing组件比较好.找不到这些符号就自己去查下API,我觉得还是看些经典的书籍比较好,比如core java.
      

  2.   

    第15行:etLayout(null);
    好像少了个s
    但是我编译的时候没有这么多错误,真邪门……
      

  3.   

    我刚才有试过了,在Eclipse李运行一点问题也没有,在命令行里面运行依然是上述结果
      

  4.   

    可以运行。你的JDK包没有设置对。看一下CLASS_PATH和JAVA_HOME的设置
      

  5.   

    etLayout(null); 前少了一个s修改后,需要在编译是设置classpath和java_home,运行时设置jre,我测试过没有问题呢
      

  6.   

    jdk包是哪个包?是tools.jar,还是dt.jar
      

  7.   

    我又全部重新配了一下,还还是有那7个错误呢?
    class_path
     .;C:\Program Files\Java\jdk1.6.0_10\lib\tools.jar;C:\Program Files\Java\jdk1.6.0_10\lib\dt.jar
    path
    C:\Program Files\Java\jdk1.6.0_10\bin
    Java_home
    C:\Program Files\Java\jdk1.6.0_10
      

  8.   

    我改了一下:
    编译时用javac -Xlint:unchecked MyMouseAdapter.java
    32行  points.add(p)  成员add(E)的调用未经检查
    修改11行为 ArrayList<Point> points = null; 
        14行为 points = new ArrayList<Point>(); 
    就OK了
      

  9.   

    在path路径中,把C:\Program Files\Java\jdk1.6.0_10\bin;C:\Program Files\Java\jdk1.6.0_10\lib\bin放到最前面试试看。如果还不行的话,就重新下载个jdk试试。
      

  10.   

    用命令行运行的话 .class文件 和 .java 文件不要放在同一个包下面.换个路径
      

  11.   

    运行成功。
    看到那么多人还没有帮你解决问题,我就帮一下吧。
    代码改了一个地方。
    先看代码 如下/**
     * 
     */
    import java.awt.*; 
    import java.awt.event.*; 
    import java.util.*; 
    /**
     * @author WenLiang
     */
    public class MyMouseAdapter{ 
      public static void main(String args[]) { 
        new MyFrame("drawing..."); 
      } 
    }  class MyFrame extends Frame { 
      ArrayList points = null; 
      MyFrame(String s) { 
        super(s); 
        points = new ArrayList(); 
        setLayout(null); 
        setBounds(300,300,400,300); 
        this.setBackground(new Color(204,204,255)); 
        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,10,10); 
        } 
      } 
      
      public void addPoint(Point p){ 
        points.add(p); 
      } 
    }  class Monitor extends MouseAdapter { 
      public void mousePressed(MouseEvent e) { 
        MyFrame f = (MyFrame)e.getSource(); 
        f.addPoint(new Point(e.getX(),e.getY())); 
        f.repaint(); 
      } 

    红色标记的地方是我改的。
    运行结果就是一个    (color=#CC99FF)这种颜色的窗口。运行环境 
    myeclipse 7.5可以结帖散分了。
      

  12.   

    我把MyMouseAdapter.java 放在D盘根目录下。
    运行--->cmd---->d:--->javac MyMouseAdapter.java出现提示:
    D:\>javac MyMouseAdapter.java
    注意:MyMouseAdapter.java 使用了未经检查或不安全的操作。
    注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。但是没有妨碍
    再输入命令 
    java MyMouseAdapter运行结果 为一个color=#CC99FF 颜色的窗口。
    注:同样修改了 setLayout(null); 这里。
    问题解决。
      

  13.   

    楼主应该升级你的jdk。
    我用的是最新的jdk
    D:\>java -version
    java version "1.6.0_16"
    Java(TM) SE Runtime Environment (build 1.6.0_16-b01)
    Java HotSpot(TM) Client VM (build 14.2-b01, mixed mode, sharing)
      

  14.   

          只有一个小小的错误啊:etLayout(null);应该是setLayout(null);
        至于你出现这么多错误那应该是环境变量设置的问题,或者升级你的jdk
      

  15.   

    有包吗?classpath 设置了吗? 你在看看是不是classpath里有其他版本的jre 啊。 比如装完oracle 带个jre,他会把路径写到path 的最开头
      

  16.   

    回答28楼,我的情况就如我先说的那样,在Eclipse李运行一点问题也没有,在命令行里面运行就是上述结果,我的环境变量已经设置了的啊,设置的数据在14楼,你看看,应该没有问题吧,另外,那个 etLayout(null)我少写了个s,是当我用 setLayout(null)错了上述错误时,我故意这样去测试的,,结果报错的情况是一样的,都是找不到符号。当我把这个程序copy 上来的时候忘了把它改过来,造成了大家的误解,去注意这个不想让大家关注的问题了,对不起哈各位,所以,我依然不知道出了什么问题··
      

  17.   

    还有一点,刚才我在命令行里面运行其他的gui程序,出现了同样的符号不能识别符号的问题,在命令行里运行其他的一般程序时没有问题的
      

  18.   

    1.先把加了 s  的  MyMouseAdapter.java 文件 拷到 你的jdk所在的bin 目录
    2.cmd--->E:\Program Files\Java\jdk1.6.0\bin>
    3.cmd--->E:\Program Files\Java\jdk1.6.0\bin>javac MyMouseAdapter.java
    4.cmd--->E:\Program Files\Java\jdk1.6.0\bin>java MyMouseAdapter就OK了
      

  19.   

    下面3句没有使用泛型。改过来再在命令行里运行就没有提示了
    ArrayList<Point> points=null;
    points=new ArrayList<Point>();
    Iterator<Point> i=points.iterator();