当前位置: 技术问答>java相关
关于java的控件响应鼠标消息的问题,请大虾帮忙
来源: 互联网 发布时间:2015-03-02
本文导语: 为了能在我的控件上响应鼠标左键压下消息。 我在一个Frame类内添加了如下代码。 this.enableEvents(AWTEvent.MOUSE_EVENT_MASK); protected void processMouseEvent(MouseEvent e) { /**@todo: Override this java.awt.Component method*/ ...
为了能在我的控件上响应鼠标左键压下消息。
我在一个Frame类内添加了如下代码。
this.enableEvents(AWTEvent.MOUSE_EVENT_MASK);
protected void processMouseEvent(MouseEvent e)
{
/**@todo: Override this java.awt.Component method*/
if(e.getID() == (MouseEvent.MOUSE_PRESSED| MouseEvent.BUTTON1_MASK))
{
return ;
}
else
{
super.processEvent( e);
}
}
但是当我单步跟踪时却到不了return代码行。
这是怎么回事请各位大虾帮忙。
谢谢了。
我在一个Frame类内添加了如下代码。
this.enableEvents(AWTEvent.MOUSE_EVENT_MASK);
protected void processMouseEvent(MouseEvent e)
{
/**@todo: Override this java.awt.Component method*/
if(e.getID() == (MouseEvent.MOUSE_PRESSED| MouseEvent.BUTTON1_MASK))
{
return ;
}
else
{
super.processEvent( e);
}
}
但是当我单步跟踪时却到不了return代码行。
这是怎么回事请各位大虾帮忙。
谢谢了。
|
Detect the mouse button used when clicking
[JDK11] import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class d extends Applet
implements MouseListener {
public void init() {
this.addMouseListener(this);
}
public void paint(Graphics g) {
g.drawString("Click here", 10,10);
}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mouseClicked(MouseEvent e) {
switch(e.getModifiers()) {
case InputEvent.BUTTON1_MASK: {
System.out.println("That's the LEFT button");
break;
}
case InputEvent.BUTTON2_MASK: {
System.out.println("That's the MIDDLE button");
break;
}
case InputEvent.BUTTON3_MASK: {
System.out.println("That's the RIGHT button");
break;
}
}
}
}
[JDK11] import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class d extends Applet
implements MouseListener {
public void init() {
this.addMouseListener(this);
}
public void paint(Graphics g) {
g.drawString("Click here", 10,10);
}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mouseClicked(MouseEvent e) {
switch(e.getModifiers()) {
case InputEvent.BUTTON1_MASK: {
System.out.println("That's the LEFT button");
break;
}
case InputEvent.BUTTON2_MASK: {
System.out.println("That's the MIDDLE button");
break;
}
case InputEvent.BUTTON3_MASK: {
System.out.println("That's the RIGHT button");
break;
}
}
}
}
|
你的方法肯定可行。
我试了你的代码是可以进入return一段的(我在这里设了个输出)。没问题,但是不管点左键还是右键都一样。
改成如下条件语句即可:
if( (e.getModifiers()&MouseEvent.BUTTON1_MASK) !=0 )
|
谢谢了大虾。
但是我的方法为什么不成呢?解释一下好吗?
这两种方法书上都说了,也都说可行,我的应用是不是出什么毛病了?
再次表示感谢。
帮我解释一下就把分都给你了。
但是我的方法为什么不成呢?解释一下好吗?
这两种方法书上都说了,也都说可行,我的应用是不是出什么毛病了?
再次表示感谢。
帮我解释一下就把分都给你了。