这个算法是在frame上鼠标一点,然后会在相应的位置画上椭圆的形状,但是不知道哪里
有问题...
import java.util.*;
import java.awt.*;
import java.awt.event.*;public class PaintPoint {
public static void main(String[] args) {
new Tpframe();
}
}class Tpframe extends Frame {
ArrayList<Point> aa = new ArrayList<Point>(); Tpframe() {
//setLayout(null);
setBounds(200, 300, 300, 300);
this.addMouseListener(new MyMouse());
setVisible(true); }
public void paint(Graphics g) {
Iterator it = aa.iterator();
g.setColor(Color.BLUE);
while(it.hasNext()) {
Point p = (Point)it.next(); //这里也有问题,我上面声名为范型了,为什么不强制转的话也会错
g.drawOval(p.x, p.y, 10, 10); //这里也有问题
}
} public void addP(Point p) {
aa.add(p);
}}class MyMouse extends MouseAdapter {
public void mouseClicked(MouseEvent e) {
Tpframe tp = (Tpframe)e.getSource();
tp.add(new Point(e.getX(), e.getY())); //这里不知道为什么错
tp.repaint();
}
}
有问题...
import java.util.*;
import java.awt.*;
import java.awt.event.*;public class PaintPoint {
public static void main(String[] args) {
new Tpframe();
}
}class Tpframe extends Frame {
ArrayList<Point> aa = new ArrayList<Point>(); Tpframe() {
//setLayout(null);
setBounds(200, 300, 300, 300);
this.addMouseListener(new MyMouse());
setVisible(true); }
public void paint(Graphics g) {
Iterator it = aa.iterator();
g.setColor(Color.BLUE);
while(it.hasNext()) {
Point p = (Point)it.next(); //这里也有问题,我上面声名为范型了,为什么不强制转的话也会错
g.drawOval(p.x, p.y, 10, 10); //这里也有问题
}
} public void addP(Point p) {
aa.add(p);
}}class MyMouse extends MouseAdapter {
public void mouseClicked(MouseEvent e) {
Tpframe tp = (Tpframe)e.getSource();
tp.add(new Point(e.getX(), e.getY())); //这里不知道为什么错
tp.repaint();
}
}
解决方案 »
- 问个简单问题,JAVA SOCKET 如何发送和接收JSON数据
- JTable 如果实现可以拖动改变列宽,同时允许横向滚动条
- 如何从http://www.ip138.com/ips.asp网站上批量请求IP地址,获得IP地址的区域所属?
- 申请[Java -> J2SE / 基础类]的版主,知道我的请举手!
- 老是出现报错!
- 新手问题
- 窗体的显示
- 请大家帮忙解决一个问题
- 关于File的一个问题:如何基于已经存在的文件生成File对象?
- 在读较大文件(10M-100M)时,每次多几个byte,效率最高(use java)
- sample和demo有什么区别?
- Can't find bundle for base name filename, locale zh_CN
public static void main(String[] args) {
new Tpframe();
}
}class Tpframe extends Frame {
ArrayList<Point> aa = new ArrayList<Point>(); Tpframe() {
//setLayout(null);
setBounds(200, 300, 300, 300);
this.addMouseListener(new MyMouse());
setVisible(true); }
public void paint(Graphics g) {
Iterator<Point> it = aa.iterator();
g.setColor(Color.BLUE);
while(it.hasNext()) {
Point p = it.next(); //这里也有问题,我上面声名为范型了,为什么不强制转的话也会错
g.drawOval(p.x, p.y, 10, 10); //这里也有问题
}
} public void addP(Point p) {
aa.add(p);
}}class MyMouse extends MouseAdapter {
public void mouseClicked(MouseEvent e) {
Tpframe tp = (Tpframe)e.getSource();
tp.addP(new Point(e.getX(), e.getY())); //这里不知道为什么错
tp.repaint();
}
}
g.drawOval(p.x, p.y, 10, 10); 这是没有问题的!
还有那个类型转换的问题,我也不懂!
API里面 it.next() 返回的是一个泛型,我前面已经定义了
ArrayList是Point类型,所以这里本应该说不用强制转换...
因为你是用迭代器取出来的,而迭代器并没有定义泛型。所以,取的时候要做类型转换。
如果你改成这样:
Point p = aa.get(0);
就不用做强制类型转换了。
符号: 变量 x
位置: 类 Point
g.drawOval(p.x, p.y, 10, 10); //这里也有问题
^
PaintPoint.java:27: 找不到符号
符号: 变量 y
位置: 类 Point
g.drawOval(p.x, p.y, 10, 10); //这里也有问题
^
PaintPoint.java:40: 找不到符号
符号: 构造函数 Point(int,int)
位置: 类 Point
tp.addP(new Point(e.getX(), e.getY())); //这里不知道为什么错
^
3 错误
这是错误,是不是JDK1.6的问题......
问题出在头文件上
我加了
import java.awt.Point;
就可以了,真怪