我用 Eclipse MousePressed(MouseEvent e) 编程无响应,但mouseMoved(MouseEvent e)有响应,这是为何?

importacm.graphics.*;importacm.program.*;importjava.awt.event.*;publicclassDrawLineex... import acm.graphics.*;
import acm.program.*;
import java.awt.event.*;

public class DrawLine extends GraphicsProgram {

public void run(){
addMouseListeners();
}

public void MousePressed(MouseEvent e){
double X = e.getX();
double Y = e.getY();
line = new GLine(X,Y,X,Y);
add(line);
}

public void MouseDragged(MouseEvent e){
double X = e.getX();
double Y = e.getY();
line.setEndPoint(X, Y);
}

private GLine line;
}
但是我又写了一个简单的程序,还是不好使,这是电脑的问题还是需要什么插件呀?我用的是Eclipse。谢谢。

import acm.graphics.*;
import acm.program.*;

import java.awt.event.*;

public class MouseClike extends GraphicsProgram{

public void run(){

addMouseListeners();
}

public void mouseCliked(MouseEvent e){
GRect rect = new GRect(e.getX(),e.getY(),100,100);
add(rect);
}

}
展开
 我来答
snowlandhg
2011-02-16 · 超过18用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:51.8万
展开全部
MouseDragged事件不属于MouseListener的监听范围,而是属于MouseMotionListener

我说哎你看过书上例子没有,查过API没有,addListener是添加监听器方法,可是方法没有操作目标,监听器收到事件之后又怎么办呢?交给谁处理?
内部类知道吗?
addMouseListener( new MouseListener(){} );
上面是添加了一个监听器实例,加入事件监听:
addMouseListener( new MouseListener(){
public void mouseClick( MouseEvent event ){
draw();
}
} );
就是这样了。
你再看看书吧,基本原理先搞懂
力波鸿0i
2011-02-15 · TA获得超过1259个赞
知道小有建树答主
回答量:461
采纳率:100%
帮助的人:348万
展开全部
MousePressed是按下又抬起来的事件吧...所以没有像你所想按下后再拖拽响应...

那你试下把MouseDragged改成MouseReleased呢?可能是因为java内部出线程的顺序影响了响应,还是改成成对的事件好...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友91f49c4
2011-02-16 · TA获得超过1176个赞
知道小有建树答主
回答量:1683
采纳率:0%
帮助的人:674万
展开全部
基本原理都没有搞懂!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1243zad
2011-02-16
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
p908po8
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
939564238
2011-02-15
知道答主
回答量:6
采纳率:0%
帮助的人:0
展开全部
wf
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式