2014-02-07 53 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; 
    

絕對不需要聽衆。 如果您對此有任何疑問,請隨時發表評論。