2011-11-04 103 views
6

我正在嘗試繪製多邊形並希望能夠點擊我的框架以獲取MouseCoordinates,以便更快地將心理圖像轉換爲x/y值。相對於框架的鼠標座標

我使用

System.out.println("("+ MouseInfo.getPointerInfo().getLocation().x +", 
    "+ MouseInfo.getPointerInfo().getLocation().y +")"); 

但是這給我的座標相對於我的實際屏幕,而不是我的Java窗口。

我怎樣才能使座標顯示相對於Java窗口?

回答

4

我想你添加一個MouseListener到你的框架?然後,你可以得到相對座標與MouseEvent.getPoint

​​3210
+0

它的工作原理,但它沒有給我正確的座標。爲了測試它,我在x = 50和7 = 50(g.drawRect(50,50,100,100))繪製了一個正方形;當我點擊廣場的左上角時,它節省了我x = 58和y = 78(java.awt.Point [x = 58; y = 78]) – Nyst

+0

這是因爲您獲得了相對於JFrame的鼠標座標但你不直接在框架上畫。您可能在您添加到JFrame的JPanel上繪製。這意味着您必須將MouseListener添加到該JPanel才能獲得正確的座標。 – SpiderPig

+0

我的壞,我得到框架和麪板困惑,它現在是固定的 – Nyst

13

您可以屏幕和組件之間的座標轉換使用SwingUtilties

方法convertPointFromScreen將採取屏幕座標,並將其轉換爲相您提供的組件。

+0

非常好的建議+1 – mKorbel

相關問題