Java - 获取缓冲图像的屏幕位置

时间:2014-06-14 18:36:19

标签: java position screen bufferedimage

我正在使用一些代码,我在滚动条中有一些缓冲图像。当我单击其中一个图像时,我想在图像周围绘制一个矩形,表示图像已被选中。

我的问题是因为我的面板是可滚动的,所以绘制时设置的图像位置不一定是实际的屏幕位置。因此,当单击鼠标时,光标位置的点不会与保存实际图像的对象的任何位置属性(x,y,高度和宽度)相交。

有人知道如何获取图像相对于屏幕而不是面板的实际位置吗? 到目前为止,我还没有在网上找到任何解决方案。

感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用SwingUtilities.convertPoint(...)方法。

我猜你需要将鼠标点转换为滚动窗格视口的坐标。

也许更简单的方法是将JList与自定义渲染器一起使用。您可以设置JList以水平包装组件。然后在自定义渲染器中,您只需向所选项添加边框。阅读How to Use Lists上Swing教程中的部分,了解更多信息和示例。