日期:2014-05-20  浏览次数:20715 次

java 鼠标监听
JFrame有一个JScrollPane,JScrollPane中有一张图片,我现在分别对JScrollPane和image监听
scroll.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
beginx=e.getX();
beginy=e.getY();
}
});
scroll.addMouseMotionListener(new MouseAdapter(){
public void mouseDragged(MouseEvent e){
int x1=e.getX(); 
int y1=e.getY(); 
System.out.println("mousedragged--->"+(x1-beginx)+" "+(y1-beginy)); 
}
});
image.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
start_X=e.getX();
start_Y=e.getY(); setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));

}
});
image.addMouseMotionListener(new MouseAdapter(){
public void mouseDragged(MouseEvent e){
end_X=image.getX()+e.getX()-start_X;
end_Y=image.getY()+e.getY()-start_Y;
image.setLocation(end_X,end_Y);

}
});
现在就是image事件的监听起作用,scroll不起作用,也就是不输出。
Java 事件监听

------解决方案--------------------
感觉应该是焦点的问题,你对image事件有监听,那么焦点就转移到该模块上,从而scroll失去焦点。
只有获取焦点的模块才会被监听。