import java.awt.*;
import java.awt.event.*;
import java.util.*;public class MyMouseAdapter {
public static void main(String[] args) {
new MMAFrame("drawing....");
}
}class MMAFrame extends Frame {
ArrayList AL = null;

MMAFrame(String s) {
super(s);
AL = new ArrayList();
setBounds(400, 300, 300, 300);
setLayout(null);
setBackground(Color.white);
setVisible(true);
this.addMouseListener(new Moniter9());
}

public void paint(Graphics g) {
Iterator i = AL.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) {
AL.add(p);
}
}class Moniter9 extends MouseAdapter {
public void mousePressed(MouseEvent e) {
MMAFrame m = (MMAFrame)e.getSource();
m.addPoint(new Point(e.getX(), e.getY()));
m.repaint();
}
}
在Eclipse中可以执行 但在dos下不能编译!

解决方案 »

  1.   

    编译?
    肯定是你的jar的PATH 找不到啊。
      

  2.   

    楼主可以把DOS编译文件的错误贴出来,看看是什么具体问题。我觉得二楼说的很有道理,你检查一下:
    第一,环境变量CLASSPATH有没有将JAVA_HOME的lib下面的.jar文件加进去
    第二,环境变量PATH有没有将JAVA_HOME/bin目录加进去如果是第一个,报ClassNotFoundExceptio,如果第二个,大概是报 javac不是可执行文件也不是批处理命令,解决方法就是
    Linux系统对应CLASSPATH在原来的值加上;JAVA_HOME/lib 在PATH原来的值加上;JAVA_HOME/bin如果是windows系统,;JAVA_HOME/lib改为;JAVA_HOME\lib ;JAVA_HOME/bin改为;JAVA_HOME\bin
      

  3.   

    编译错误提示 是什么 ?Command not found? 文件没有找到?  还是有语法错误? 
      

  4.   


    D:\java\GUI>javac MyMouseAdapter.java
    MyMouseAdapter.java:29: x 可以在 Point 中访问 private
                            g.fillOval(p.x, p.y, 10, 10);
                                        ^
    MyMouseAdapter.java:29: y 可以在 Point 中访问 private
                            g.fillOval(p.x, p.y, 10, 10);
                                             ^
    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 使用了未经检查或不安全的操作。
    注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。
    3 错误D:\java\GUI>   这是dos编译的结果
      

  5.   

    语法错误  
    D:\java\GUI>javac MyMouseAdapter.java
    MyMouseAdapter.java:29: x 可以在 Point 中访问 private
                            g.fillOval(p.x, p.y, 10, 10);
                                        ^
    MyMouseAdapter.java:29: y 可以在 Point 中访问 private
                            g.fillOval(p.x, p.y, 10, 10);
                                             ^
    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 使用了未经检查或不安全的操作。
    注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。
    3 错误D:\java\GUI>
      

  6.   

    注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。提示的很清楚了啊不知道java xxx -nowarn 这个参数能不能用了
      

  7.   

    楼主,我将你的源码原封不动进行了编译和运行,都可以通过,只是报出来一个警告注:MyMouseAdapter.java 使用了未经检查或不安全的操作。
    注:要了解详细信息,请使用 -Xlint:unchecked 重新编译。并没有报出来
    MyMouseAdapter.java:29: 无法将 java.awt.Graphics 中的 fillOval(int,int,int,int)
    应用于 (double,double,int,int)
      g.fillOval(p.x, p.y, 10, 10);我想问下你的JRE版本是多少,应该是JRE环境的问题导致同样代码编译输出结果不同。还有,你可以试一下这个命令 javac -Xlint:unchecked MyMouseAdapter.java 尝试编译下,看看能不能通过
      

  8.   

    还是不行啊  大哥 我装的是jdk1.6_10,用你给的那个命令还是提示那三个错误,这程序我在Eclipse上运行没问题哎,程序本身没错,难道就是jdk的问题吗?
      

  9.   

    你确定代码是贴出来的吗?很奇怪的
    你装一下更高版本的JDK吧,可能是JDK的javac命令的问题,eclipse里面的编译不是用的javac而是自己的,
    尝试装一下JDK6update26或者JDK7试试其实程序能在eclipse跑起来就可以了,javac跑不通不影响开发,真要刨根问底儿那就装新的JDK再试试