请帮忙完成一个图形跟随鼠标的小程序
编程实现以鼠标的当前位置为圆心画一个小圆圈,圆圈随着鼠标的移动而移动,如果用户拖动鼠标,则圆圈的颜色为红色;否则圆圈的颜色为黑色,在鼠标单击的位置显示单击的次数。
就是自己不去看 多学学MouseEvent MouseListener 配合Graphics 里面的draw方法 很简单就可以画出来
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionAdapter;
import java.awt.event.MouseMotionListener;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JFrame;
import java.awt.*;
public class Cricle extends JFrame{
private int x,y,count;
private boolean flag;
public Cricle(){
this.setTitle("绘图");
this.setBounds(300,150,400,300);//设置大小和位置
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.addMouseListener(new MouseAdapter(){//添加鼠标监听
public void mousePressed(MouseEvent e){
x=e.getX();
y=e.getY();
count++;
flag=false; //单击没有移动时画黑色的圆
repaint();
}
public void mouseReleased(MouseEvent e){
flag=false;//停下是画黑色的圆
repaint();
}
});
this.addMouseMotionListener(new MouseMotionAdapter(){//鼠标移动事件
public void mouseDragged(MouseEvent e){
flag=true;//点住圆移动中画红色的圆
x=e.getX();
y=e.getY();
repaint();
}
});
flag=true;
}
public void paint(Graphics g){
super.paint(g);
Graphics2D g2d=(Graphics2D)g;
g2d.setStroke(new BasicStroke(2.0f));//设置圆的边框粗细
if(flag){
g.setColor(Color.red);
}else {
g.setColor(Color.black);
}
g.drawOval(x-20,y-20,40,40);
g.drawString(""+count,x,y);
}
public static void main(String arg[]){
Cricle c=new Cricle();
c.setVisible(true);
}
}
怎么说也是为这为朋友好 多思考没坏处的 只是时间问题 错了以后不怎么说了:)
[此贴子已经被作者于2007-5-10 19:06:49编辑过]