0

例如,假设我在带有 JScrollPanes 的 JPanel 子类中有一个绘图,并且我想捕获用户单击的点。例如,假设 JPanel 内的绘图区域从 0 变为 10000,而屏幕大小是先验未知的。给定单击事件中的鼠标坐标,是否可以确定它实际上在 0 - 10000 范围内的哪个位置?例如,根据事件,屏幕上的坐标将是 (300, 500),但画布中的实际位置可能是 (5890, 3200)。

4

1 回答 1

0

传递给组件时的鼠标坐标是相对于组件给出的,因此如果这是鼠标单击的可见部分,您的 JPanel 将看到 5890,3200。如果您必须从屏幕坐标转换,您可以使用JViewport通过JViewport.getViewRect()查找当前在视口中可见的视图坐标。您可以通过JScrollPane.getViewport()从 JScrollPane 获取视口。

于 2010-08-14T16:41:28.040 回答