我正在使用一些代码,我在滚动条中有一些缓冲图像。当我单击其中一个图像时,我想在图像周围绘制一个矩形,表示图像已被选中。
我的问题是因为我的面板是可滚动的,所以绘制时设置的图像位置不一定是实际的屏幕位置。因此,当单击鼠标时,光标位置的点不会与保存实际图像的对象的任何位置属性(x,y,高度和宽度)相交。
有人知道如何获取图像相对于屏幕而不是面板的实际位置吗? 到目前为止,我还没有在网上找到任何解决方案。
感谢。
答案 0 :(得分:1)
您可以使用SwingUtilities.convertPoint(...)
方法。
我猜你需要将鼠标点转换为滚动窗格视口的坐标。
也许更简单的方法是将JList与自定义渲染器一起使用。您可以设置JList以水平包装组件。然后在自定义渲染器中,您只需向所选项添加边框。阅读How to Use Lists上Swing教程中的部分,了解更多信息和示例。