请帮忙完成一个图形跟随鼠标的小程序
编程实现以鼠标的当前位置为圆心画一个小圆圈,圆圈随着鼠标的移动而移动,如果用户拖动鼠标,则圆圈的颜色为红色;否则圆圈的颜色为黑色,在鼠标单击的位置显示单击的次数。
----------------解决方案--------------------------------------------------------
就是自己不去看 多学学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编辑过]
----------------解决方案--------------------------------------------------------
感谢楼上大哥的程序,在你的程序上,我确实学到了Graphics类的用法,这点就够了,不过你的整个程序对我来说没什么用处,我想要的就是Graphics类的用法,在这里我学到了,非常感谢,不过我看得出来,大哥的程序应该是在匆忙之中写的,应为对于整个程序来说,并不符合我所写的题目的要求,而且有不少冗余代码,大哥能在百忙之中帮我,小弟感激不尽。
----------------解决方案--------------------------------------------------------
你是在损人还是在夸人呀
----------------解决方案--------------------------------------------------------
感觉 热血男儿 说话的水平挺高的,哈哈
----------------解决方案--------------------------------------------------------
我说话的水平高吗,多谢夸奖,不过我也只是就事实说话而已
----------------解决方案--------------------------------------------------------
大哥的技术确实是可以啊
----------------解决方案--------------------------------------------------------