鼠标mouse事件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了鼠标mouse事件相关的知识,希望对你有一定的参考价值。

参考技术A 1 .mouseenter:不冒泡。只有在鼠标穿过备选元素的时候,才会触发mouseenter事件
2 .mouseover:冒泡。不论鼠标指针穿过被选元素或者其子元素,都会触发mouseover事件
3 .为了阻止mouseover,mouseout反复触发,我们需要用到event的relaedtarget,这个属性用来判断mouseover和mouseout事件目标节点的相关节点的属性。分别代表鼠标刚刚离开的那个节点。鼠标移向的那个节点。由于MSIE不支持这个属性,不过有替代的属性。fromElemenet,toElement。通过判断这个属性,我们就可以知道鼠标是从哪个对象移过来,又要移动到哪个对象,然后判断这个相关联的兑现过是否在我们要触发的事件的对象的内容,然后来判断我们是否真的要触发这个事件。
4 .

1 .mouseleave:不冒泡
2 .mouseout:冒泡

十三周总结

菜单组件

技术图片

鼠标监听器MouseMotionListener
对于鼠标的移动和拖放,另外用鼠标运动监听器MouseMotionListener。
因为许多程序不需要监听鼠标运动,把两者分开可简化程序。
相应事件和处理方法
鼠标事件 处理方法
MOUSE_MOVED MouseMoved (MouseEvent) 鼠标在移动
MOUSE_DRAGGED MouseDragged(MouseEvent) 鼠标被拖动

鼠标事件指与鼠标相关的事件,继承了MouseEvent接口。具体的事件主要有以下一些。

click:按下鼠标(通常是按下主按钮)时触发。
dblclick:在同一个元素上双击鼠标时触发。
mousedown:按下鼠标键时触发。
mouseup:释放按下的鼠标键时触发。
mousemove:当鼠标在一个节点内部移动时触发。当鼠标持续移动时,该事件会连续触发。为了避免性能问题,建议对该事件的监听函数做一些限定,比如限定一段时间内只能运行一次。
mouseenter:鼠标进入一个节点时触发,进入子节点不会触发这个事件(详见后文)。
mouseover:鼠标进入一个节点时触发,进入子节点会再一次触发这个事件(详见后文)。
mouseout:鼠标离开一个节点时触发,离开父节点也会触发这个事件(详见后文)。
mouseleave:鼠标离开一个节点时触发,离开父节点不会触发这个事件(详见后文)。
contextmenu:按下鼠标右键时(上下文菜单出现前)触发,或者按下“上下文菜单键”时触发。
wheel:滚动鼠标的滚轮时触发,该事件继承的是WheelEvent接口。

import javax.swing.;
import java.awt.
;
import java.awt.event.*;

public class MouseDemo {
//定义该图形中所需的组件的引用
private Frame f;
private Button bt;
MouseDemo()//构造方法
{
madeFrame();
}

public void madeFrame() {
    f = new Frame("My Frame");
    f.setBounds(300, 100, 600, 500);
    f.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));

    bt = new Button("My Button");
    f.add(bt);
    myEvent();
    f.setVisible(true);
}
private void myEvent() {
    f.addWindowListener(new WindowAdapter()
    {
        public void windowClosing(WindowEvent e) {
            System.out.println("窗体执行关闭!");
            System.exit(0);
        }
    });

    bt.addActionListener(new ActionListener()
    {
        public void actionPerformed(ActionEvent e) {
            System.out.println("按钮活动了!");
        }
    });
    bt.addMouseListener(new MouseAdapter()//鼠标监听
    {
        private int count = 1;
        private int mouseCount = 1;

        public void mouseEntered(MouseEvent e) {
            System.out.println("鼠标监听" + count++);
        }

        public void mouseClicked(MouseEvent e) {
            if (e.getClickCount() == 2)
                System.out.println("鼠标被双击了");
            else System.out.println("鼠标被点击" + mouseCount++);
        }
    });
}

public static void main(String[] agrs) {
    new MouseDemo();
}

}
技术图片

以上是关于鼠标mouse事件的主要内容,如果未能解决你的问题,请参考以下文章

3D Slicer Modify Mouse Event 修改3D Slicer中的鼠标响应事件

js按下鼠标mousedown并mousemove的时候,如何保持鼠标样式全屏不变?

十三周总结

不要在鼠标向上事件中关闭模式

查找键盘、鼠标的事件设备

mouseEvent事件——mouse坐标描述——focus事件——input事件——节流(thorttle)——mouseWheel(滚轮事件)