1

我目前有一个图像作为 BufferedImage 加载到程序中。这个 BufferedImage 被放在一个具有固定大小的 JPanel 类中。

现在我面临的问题是如何在这个固定大小的 JPanel 中平移这个大的 BufferedImage。

JPanel 尺寸肯定小于图像。

谢谢!

4

1 回答 1

3

首先,将一些滚动条附加到 JPanel(南和东,使用 a BorderLayout),只有在图像太大和/或太高时才可见。JPanel在剩余空间(中心)附加另一个。在那个内部JPanel,您将覆盖该paintComponent方法并将您的部分绘制BufferedImageJPanel. 使用滚动条的偏移量来偏移图像,并使用内部JPanel来绘制宽度和高度(视口)。

注意:只要滚动条的值发生变化,您的滚动条就会调用repaint您的内部方法。JPanel

paintComponent每当需要重绘图像时,系统会自动(或手动)调用。这样做,您将能够自定义您为图像提供的视图(如果需要此类功能);旋转、缩放、像素操作、自定义叠加等。

您还可以将一些MouseMotionListener附加到内部JPanel并根据鼠标移动修改滚动条的偏移量(修改滚动条将自动触发图像上的重绘)以与您的组件进行鼠标交互。只是一个想法。

于 2012-08-03T06:53:08.250 回答