我目前有一个图像作为 BufferedImage 加载到程序中。这个 BufferedImage 被放在一个具有固定大小的 JPanel 类中。
现在我面临的问题是如何在这个固定大小的 JPanel 中平移这个大的 BufferedImage。
JPanel 尺寸肯定小于图像。
谢谢!
首先,将一些滚动条附加到 JPanel(南和东,使用 a BorderLayout
),只有在图像太大和/或太高时才可见。JPanel
在剩余空间(中心)附加另一个。在那个内部JPanel
,您将覆盖该paintComponent
方法并将您的部分绘制BufferedImage
到JPanel
. 使用滚动条的偏移量来偏移图像,并使用内部JPanel
来绘制宽度和高度(视口)。
注意:只要滚动条的值发生变化,您的滚动条就会调用repaint
您的内部方法。JPanel
paintComponent
每当需要重绘图像时,系统会自动(或手动)调用。这样做,您将能够自定义您为图像提供的视图(如果需要此类功能);旋转、缩放、像素操作、自定义叠加等。
您还可以将一些MouseMotionListener附加到内部JPanel
并根据鼠标移动修改滚动条的偏移量(修改滚动条将自动触发图像上的重绘)以与您的组件进行鼠标交互。只是一个想法。