0 java mouse swing right-click mouseevent
我在框架上有一些组件,我需要它才能在右键单击时做出响应.我必须使用自己的活动.我应该延长MouseEvent
吗?如何在活动中将右键单击与其他人分开?
不,你不会扩展 MouseEvent,而是你会使用 MouseEvent.
如果这是一个Swing GUI,您可以将MouseListener添加到组件,然后在MouseListener的mousePressed方法中,获取传入方法的MouseEvent对象,获取其modifiersEx,然后检查是否已按下右键:
public void mousePressed(MouseEvent mEvt) {
if ((mEvt.getModifiersEx() & MouseEvent.BUTTON3_DOWN_MASK) != 0) {
// right button has been pressed
}
}
Run Code Online (Sandbox Code Playgroud)
该MouseEvent
班有一个方法,可以让你检查使用了哪个鼠标按钮.它被称为getButton,它返回一个int
值,您可以将其与预定义值之一进行比较
最重要的是,有一个方便的类叫做SwingUtilities
,它提供了一个很好的抽象层来使用这些字段.这是一个你会发现特别有趣的方法:isRightMouseButton
换句话说,您不需要创建自己的MouseEvent
,MouseListener
实现就足够了.以下是内联实现的示例,排除了不相关的详细信息.
new MouseListener(){
@Override
public void mouseClicked(MouseEvent e) {
if(SwingUtilities.isRightMouseButton(e)){
//do what you want on right click
}
}
// other methods required by the interface
};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
258 次 |
最近记录: |