我有一个继承自JPanel
的类。它被称为DrawingPanel
,在这个类中我使用Graphics2D
绘制线条和形状,我使用用户鼠标的位置对这些形状进行一些操作。
面板中的图纸可能占用屏幕上的大量空间(例如我可以从(-200,-300)到(2000,1000)绘制线条),所以实际上我只看到一部分图纸。这就是为什么我希望能够通过滚动来移动我面板中绘制的所有内容。
有没有一个简单而优雅的解决方案来实现这一点,而且我的代码中不需要进行太多更改?
编辑:实际上我的问题是我不知道在JPanel
中使用Graphics2D
绘制的形状进行滚动工作的优雅方法。我尝试将JPanel
添加到JScrollPane
但是没有用。实际上,我应该将什么添加到我的代码中?
答案 0 :(得分:1)
将您的绘图代码放在一个单独的方法中,称为(例如)draw
,它接受1个参数,一个Graphics对象。
在paintComponent
方法中,translate()
应显示根据图纸区域的图形对象,然后将其传递到draw
方法。