import java.awt.*;
import java.util.*;
import java.awt.event.*;
public class MyMouseAdapter {
Frame f = new Frame("drawing...");
ArrayList points = null;
//private MyCanvas drawArea = new MyCanvas();
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);
}
public void init()
{
f.addMouseListener(new MouseAdapter()
{
public void mouseReleased(MouseEvent e)
{
addPoint(new Point(e.getX(),e.getY()));
f.repaint();
//drawArea.repaint();
}
});
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//drawArea.setPreferredSize(new Dimension(250,180));
//f.add(drawArea);
f.pack();
f.setVisible(true);
}
/*class MyCanvas extends Canvas
{
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 static void main(String[] args)
{
new MyMouseAdapter().init();
}
}
我想让鼠标在窗口中点下就有个小圆出现,可每次一点就出错了,请问应该怎么改呢?
import java.util.*;
import java.awt.event.*;
public class MyMouseAdapter {
Frame f = new Frame("drawing...");
ArrayList points = null;
//private MyCanvas drawArea = new MyCanvas();
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);
}
public void init()
{
f.addMouseListener(new MouseAdapter()
{
public void mouseReleased(MouseEvent e)
{
addPoint(new Point(e.getX(),e.getY()));
f.repaint();
//drawArea.repaint();
}
});
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//drawArea.setPreferredSize(new Dimension(250,180));
//f.add(drawArea);
f.pack();
f.setVisible(true);
}
/*class MyCanvas extends Canvas
{
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 static void main(String[] args)
{
new MyMouseAdapter().init();
}
}
我想让鼠标在窗口中点下就有个小圆出现,可每次一点就出错了,请问应该怎么改呢?
ArrayList points = null;
没赋值points 为空
没有初始化
ArrayList points = new ArrayList();
import java.util.*;
import java.awt.event.*;public class MyMouseAdapter {
ArrayList points = null;
Frame f = new Frame("drawing...") {
public void paint(Graphics g) {
Iterator i = points.iterator();
System.out.println("" + i.hasNext());
while (i.hasNext()) {
Point p = (Point) i.next();
System.out.println("x" + p.x + ", y" + p.y);
g.setColor(Color.BLUE);
g.fillOval(p.x, p.y, 10, 10);
}
}
}; public void addPoint(Point p) {
points.add(p);
} public void init() {
points = new ArrayList();
f.addMouseListener(new MouseAdapter() { public void mouseReleased(MouseEvent e) {
addPoint(new Point(e.getX(), e.getY()));
f.repaint();
}
});
f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
f.setBounds(100, 100, 200, 200);
f.setVisible(true);
} public static void main(String[] args) {
new MyMouseAdapter().init();
}
}
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();
}
}
import java.awt.*;
import java.util.*;
import java.awt.event.*;
public class MyMouseAdapter {
ArrayList points = null;
private MyCanvas drawArea = new MyCanvas();
Frame f = new Frame("drawing...");
/*{
//private MyCanvas drawArea = new MyCanvas();
public void paint(Graphics g)
{
Iterator i = points.iterator();
System.out.println("" + i.hasNext());
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);
}
public void init()
{
points = new ArrayList();
f.addMouseListener(new MouseAdapter()
{
public void mouseReleased(MouseEvent e)
{
addPoint(new Point(e.getX(),e.getY()));
f.repaint();
drawArea.repaint();
}
});
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
drawArea.setPreferredSize(new Dimension(250,180));
f.add(drawArea);
f.setBounds(100, 100, 200, 200);
f.setVisible(true);
f.pack();
f.setVisible(true); }
class MyCanvas extends Canvas
{
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 static void main(String[] args)
{
new MyMouseAdapter().init();
}
}
重画,写外面它就不属于Frame,Frame调用不就没画出点来