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下不能编译!
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下不能编译!
肯定是你的jar的PATH 找不到啊。
第一,环境变量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
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编译的结果
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>
注:要了解详细信息,请使用 -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 尝试编译下,看看能不能通过
你装一下更高版本的JDK吧,可能是JDK的javac命令的问题,eclipse里面的编译不是用的javac而是自己的,
尝试装一下JDK6update26或者JDK7试试其实程序能在eclipse跑起来就可以了,javac跑不通不影响开发,真要刨根问底儿那就装新的JDK再试试