当前位置: 代码迷 >> J2SE >> ,这段代码在你们的机器上能编译吗
  详细解决方案

,这段代码在你们的机器上能编译吗

热度:47   发布时间:2016-04-23 20:29:45.0
求助,这段代码在你们的机器上能编译吗?

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(); 
    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();
  }
}


我在dos下编译会出现这样的错误

------解决方案--------------------
可跑LZ
------解决方案--------------------
可以运行啊。。
------解决方案--------------------
编译运行了也是这样的结果
------解决方案--------------------
引用:
谁给我分析分析,我这编译会报错的原因是什么呢


应该不是报错,是警告!
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(); 
    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();
    int x,y;
    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();
  }
}

我用dos编译,可以运行,只是这一段会有警告(这里我做了修改):
   while(i.hasNext()){
      Point p = (Point)i.next();
      g.setColor(Color.BLUE);
      g.fillOval(p.x,p.y,10,10);
    }
警告是因为double类型转成int类型会失真,lz你编译一下,看文件目录下面有没有.class文件吧,程序基本上是没错误的!
我的运行结果:

------解决方案--------------------
可以运行
------解决方案--------------------

import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.util.List;

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

class MyFrame extends Frame {
List<Point> points = null;    

    MyFrame(String s) {
        super(s);
        points = new ArrayList<>();
        setLayout(null);
  相关解决方案