标题:关于鼠标事件的问题
取消只看楼主
东方一帅
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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-315778-1-1.html




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

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