我用 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);
}
} 展开
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);
}
} 展开
5个回答
展开全部
MouseDragged事件不属于MouseListener的监听范围,而是属于MouseMotionListener
我说哎你看过书上例子没有,查过API没有,addListener是添加监听器方法,可是方法没有操作目标,监听器收到事件之后又怎么办呢?交给谁处理?
内部类知道吗?
addMouseListener( new MouseListener(){} );
上面是添加了一个监听器实例,加入事件监听:
addMouseListener( new MouseListener(){
public void mouseClick( MouseEvent event ){
draw();
}
} );
就是这样了。
你再看看书吧,基本原理先搞懂
我说哎你看过书上例子没有,查过API没有,addListener是添加监听器方法,可是方法没有操作目标,监听器收到事件之后又怎么办呢?交给谁处理?
内部类知道吗?
addMouseListener( new MouseListener(){} );
上面是添加了一个监听器实例,加入事件监听:
addMouseListener( new MouseListener(){
public void mouseClick( MouseEvent event ){
draw();
}
} );
就是这样了。
你再看看书吧,基本原理先搞懂
展开全部
MousePressed是按下又抬起来的事件吧...所以没有像你所想按下后再拖拽响应...
那你试下把MouseDragged改成MouseReleased呢?可能是因为java内部出线程的顺序影响了响应,还是改成成对的事件好...
那你试下把MouseDragged改成MouseReleased呢?可能是因为java内部出线程的顺序影响了响应,还是改成成对的事件好...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
基本原理都没有搞懂!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询