所以我在JPanel
内有一个JScrollPane
(让我们将它们称为面板和窗格以供参考)
所以我添加了如下所示的窗格:
JScrollPane pane = new JScrollPane(panel);
然后我将我的窗格添加到框架中。
所以现在我想在我的面板中画画。我首先尝试通过覆盖面板类中的paintComponent
方法来做到这一点。我认为我的整个面板都会被绘制,然后我可以滚动它,因为我将面板添加到了窗格。但每次我移动酒吧,它都会不断尝试重绘。我的逻辑不对吗?我应该用另一种方式画画吗?
答案 0 :(得分:0)
我认为我的整个面板都会被绘制然后我可以滚动浏览它,因为我将面板添加到了窗格中。但每次我移动吧,它都会不断尝试重绘。
这就是JScrollPane
的工作原理,有关算法的说明,请参阅JViewport
的文档。
如果您的绘图算法涉及繁重的处理,或者您希望避免频繁重绘面板,则可以draw to an BufferedImage
代替,然后使用Graphics2d中的drawImage()
来更有效地绘制面板滚动更新。