2010-08-14 139 views
0

例如,假設我在具有JScrollPanes的JPanel子類中繪製了一個圖形,並且我想要捕獲用戶點擊的點。例如,假設JPanel內部的繪圖區域從0到10000,而屏幕大小不是先驗已知的。鑑於點擊事件中的鼠標座標,是否有可能確定實際在0 - 10000範圍內的位置?例如,根據事件,屏幕上的座標將是(300,500),但畫布中的實際位置可能是(5890,3200)。Java:在給定用戶點擊的座標的情況下獲得鼠標在JPanel中的絕對位置

回答

0

鼠標座標交付給組件時,相對於組件給出,所以你的JPanel你會看到5890,3200,如果這是鼠標點擊的可見部分。如果您必須從屏幕座標進行翻譯,則可以使用JViewport通過JViewport.getViewRect()查找當前在視口中可見的視圖的座標。您通過JScrollPane.getViewport()從JScrollPane獲取視口。

+0

等待,但我必須把jpanel放在jscrollpane裏面。我以爲這會搞砸了?其實我幾乎可以肯定。我會檢查並報告。 – 2010-08-14 17:33:50

+0

啊,你是對的。我想我是在將偵聽器添加到scrollpane之前想的嗎?我不知道。但無論如何感謝。 – 2010-08-14 17:49:56

相關問題