| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 600 人关注过本帖
标题:关于鼠标事件的问题
取消只看楼主 加入收藏
东方一帅
Rank: 2
等 级:论坛游民
帖 子:18
专家分:34
注 册:2010-7-23
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:2 
关于鼠标事件的问题
代码如下:
import java.awt.*;
import java.awt.event.*;
public class Mouse extends Frame
{
    static int x,y,ox,oy,offx,offy,px,py;
    static Mouse frm=new Mouse();
    static Button bu=new Button("拖动我");
    static TextField tf=new TextField(20);
    public static void main(String args[])
    {
        frm.setLayout(null);
        frm.setTitle("鼠标事件的处理");
        frm.setBounds(100,100,400,300);
        bu.setBounds(180,140,60,20);
        tf.setBounds(50,200,260,50);
        tf.setEditable(false);
        frm.add(bu);
        frm.add(tf);
        frm.setVisible(true);
        bu.addMouseListener(new myMouse());
        bu.addMouseMotionListener(new myMouseM());
    }
    static class myMouse extends MouseAdapter
    {
        public void mousePressed(MouseEvent e)
        {
             px=e.getX();
             py=e.getY();
             ox=bu.getLocation().x;
             oy=bu.getLocation().y;
            
        }
    }
    static class myMouseM extends MouseMotionAdapter
    {
        public void mouseDragged(MouseEvent e)
        {
             offx=px-ox;
             offy=py-oy;
             x=e.getX()-offx;
             y=e.getY()-offy;
             tf.setText("命令按钮放置在("+x+","+y+")的位置");
             bu.setLocation(x, y);
            
             ox=x;// 如果不加这两句,拖动时会晃动,为什么?
             oy=y;
            
        }
    }
}
运行后正常,但是觉得上述ox=x;oy=y;这两句多余,但是去掉后拖动时却晃动为什么?这两句有什么作用呢?
2010-08-15 17:33
东方一帅
Rank: 2
等 级:论坛游民
帖 子:18
专家分:34
注 册:2010-7-23
收藏
得分:0 
什么意思啊,没看懂。。。。
2010-08-17 08:20
东方一帅
Rank: 2
等 级:论坛游民
帖 子:18
专家分:34
注 册:2010-7-23
收藏
得分:0 
哦,明白了,px是不断改变的,所以要让ox同步改变才能保证offx不变,5楼说的不对吧,ox应该是拖动中bu左边界的距离,通过ox=x;来与px的不断改变同步。。。。
2010-08-17 12:14
快速回复:关于鼠标事件的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016586 second(s), 10 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved