如何移动JPanel的所有内容?

时间:2012-11-26 15:33:24

标签: java swing scroll jpanel graphics2d

我有一个继承自JPanel的类。它被称为DrawingPanel,在这个类中我使用Graphics2D绘制线条和形状,我使用用户鼠标的位置对这些形状进行一些操作。

面板中的图纸可能占用屏幕上的大量空间(例如我可以从(-200,-300)到(2000,1000)绘制线条),所以实际上我只看到一部分图纸。这就是为什么我希望能够通过滚动来移动我面板中绘制的所有内容。

有没有一个简单而优雅的解决方案来实现这一点,而且我的代码中不需要进行太多更改?

编辑:实际上我的问题是我不知道在JPanel中使用Graphics2D绘制的形状进行滚动工作的优雅方法。我尝试将JPanel添加到JScrollPane但是没有用。实际上,我应该将什么添加到我的代码中?

1 个答案:

答案 0 :(得分:1)

将您的绘图代码放在一个单独的方法中,称为(例如)draw,它接受​​1个参数,一个Graphics对象。
paintComponent方法中,translate()应显示根据图纸区域的图形对象,然后将其传递到draw方法。