2017-05-16 79 views
0

現在我在做這個如何在每一幀得到相對的JPanel鼠標位置

mouseX = MouseInfo.getPointerInfo().getLocation().x; 

,但如果我移動的JFrame這不工作了。

另外我每次移動鼠標都需要鼠標位置,因爲我想在我的遊戲中拖動東西,因此鼠標事件不起作用。

如何獲得相對於JPanel的每個幀的鼠標位置?


編輯1:好的我已經想通了。我將鼠標位置減去屏幕上的jframe位置,然後在jpanel上獲取鼠標位置

+1

'MouseListener'? 'MouseMotionListener'? – MadProgrammer

+0

mouse listener does not work every frame –

+0

*「好吧,我已經弄明白了,我將鼠標位置減去屏幕上的jframe位置,然後在jpanel上獲得鼠標位置」 - 沒有,因爲面板是包含在框架的邊界內,所以它被抵消了。我認爲你想解決的問題的更大解釋會幫助其他人幫助你 – MadProgrammer

回答

2

問題是「如何在每個框架上相對於JPanel獲取鼠標位置」。我從中得到了你不一定每個框架都有鼠標事件,所以你必須輪詢鼠標位置(相對於屏幕),並計算相對位置(相對於你的JPanel)。

所有的一切,這讓我想你想的:

Point p = MouseInfo.getPointerInfo().getLocation(); 
SwingUtilities.convertPointFromScreen(p, yourJPanel); 
// Then use 'p', which was modified by method call above 
相關問題