2014-02-07 55 views
2

我在窗口内有一个画布。该窗口是全屏幕,但画布不是。我需要将鼠标位置放置在画布内,但不要放在窗口内。我该怎么做呢?在画布中获取鼠标位置(java)

即使鼠标没有移动,我也需要每秒获取一次鼠标位置,所以使用MouseMoved侦听器并不够好。

有没有办法在画布中获得鼠标位置,而无需调用任何mouselistener?

回答

3

存储鼠标位置。如果它没有移动,那么位置是一样的。然后使用鼠标移动的动作侦听器更新您存储的鼠标位置状态,因为它发生变化。

1

这里只是一个简单的例子,说明我该怎么做。起初:

  • 获取Jframe的组件:

    Component[] components = yourJFrame.getComponents(); 
    
  • 让你的画布(注:如果您添加的画布前添加一些东西,它不会是伪add : button1, add:button2, add:canvas组件0.1示例 - 帆布=分量[2]):

    Component canvas = components[0]; 
    
  • 获取鼠标位置:

    int mouse_x=MouseInfo.getPointerInfo().getLocation().x-canvas.getLocationOnScreen().x; 
    int mouse_y=MouseInfo.getPointerInfo().getLocation().y-canvas.getLocationOnScreen().y; 
    

绝对不需要听众。 如果您对此有任何疑问,请随时发表评论。