java小程序中鼠标事件的响应处理(包含右键、双击等)

javaduke 原创于 www.dukejava.com 主页上提供大量java编程技巧
如何在小程序中实现鼠标响应?
public class Hello extends Applet implements MouseListener{

public void init(){
addMouseListener(this);
}
public void mouseEntered(MouseEvent e){
au.play();
setBackground(Color.blue);
}

public void mouseExited(MouseEvent e){
setBackground(Color.black);
}

public void mousePressed(MouseEvent e){}

public void mouseReleased(MouseEvent e){}

public void mouseClicked(MouseEvent e){}

}
首先在小程序中实现事件监听器,再实现鼠标用户接口


如何小程序中处理鼠标双、三击?

component.addMouseListener(
new MyMouseListener());

public class MyMouseListener extends MouseAdapter {
public void mouseClicked(MouseEvent evt) {
if (evt.getClickCount() == 3) {
// 处理鼠标三击
} else if (evt.getClickCount() == 2) {
// 处理鼠标双击
}
}
}

处理鼠标右键

public mouseClicked(MouseEvent e){

if(e.isMetaDown()){//检测鼠标右键单击

}

如何在小程序中处理鼠标中间键?

new MyMouseListener());

public class MyMouseListener extends MouseAdapter {
public void mouseClicked(MouseEvent evt) {
if ((evt.getModifiers() &?
InputEvent.BUTTON1_MASK) != 0) {
processLeft(evt.getPoint());
//处理鼠标左键单击
}
if ((evt.getModifiers() &?
InputEvent.BUTTON2_MASK) != 0) {
processMiddle(evt.getPoint());
//处理鼠标中间键单击
}
if ((evt.getModifiers() &?
InputEvent.BUTTON3_MASK) != 0) {
processRight(evt.getPoint());
//处理鼠标右键单击
}
}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
QScroller 是 Qt 提供的滚动条控件,它可以用于实现滚动效果并支持手势操作。QScroller::RightMouseButtonGesture 是 QScroller 的一个属性,用于指定是否启用鼠标右键手势。如果启用了该手势,那么在 QScroller 的区域内双击鼠标右键时,QScroller 会拦截该事件并进行滚动操作。 如果你想要在 QScroller 的区域内实现鼠标右键双击事件,可以尝试以下方法: 1. 在 QScroller 的区域内添加一个事件过滤器,过滤掉 QMouseEvent::MouseButtonDblClick 事件。具体代码如下: ```cpp // scroller 是 QScroller 的对象指针,widget 是 QScroller 的区域内的控件指针 widget->installEventFilter(this); bool YourClass::eventFilter(QObject *watched, QEvent *event) { if (watched == widget && event->type() == QEvent::MouseButtonDblClick) { QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event); if (mouseEvent->button() == Qt::RightButton) { return true; } } return QObject::eventFilter(watched, event); } ``` 2. 在 QScroller 的区域内设置一个全局事件过滤器,过滤掉 QMouseEvent::MouseButtonDblClick 事件。具体代码如下: ```cpp // scroller 是 QScroller 的对象指针,widget 是 QScroller 的区域内的控件指针 qApp->installEventFilter(this); bool YourClass::eventFilter(QObject *watched, QEvent *event) { if (watched == qApp && event->type() == QEvent::MouseButtonDblClick) { QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event); if (widget->rect().contains(mouseEvent->pos()) && mouseEvent->button() == Qt::RightButton) { return true; } } return QObject::eventFilter(watched, event); } ``` 以上两种方法都可以在 QScroller 的区域内实现鼠标右键双击事件。注意,如果你使用了以上方法,QScroller::RightMouseButtonGesture 属性将不再有任何作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值