Java 当JPanel在JScrollPane中时,绘图是如何工作的?

Java 当JPanel在JScrollPane中时,绘图是如何工作的?,java,swing,jpanel,jscrollpane,paintcomponent,Java,Swing,Jpanel,Jscrollpane,Paintcomponent,所以我在一个JScrollPane中有一个JPanel,让我们称它们为panel和pane以供参考 因此,我添加并创建了如下窗格: JScrollPane pane = new JScrollPane(panel); 然后,我将窗格添加到框架中。 现在我想在我的面板上画。我首先尝试在panel类中重写paintComponent方法。我以为我的整个面板都会被画出来,然后我就可以滚动浏览它了,因为我把面板添加到了窗格中。但每次我移动横杆,它都会不断尝试重新绘制。我的逻辑不对吗?我应该用另一种方式

所以我在一个JScrollPane中有一个JPanel,让我们称它们为panel和pane以供参考 因此,我添加并创建了如下窗格:

JScrollPane pane = new JScrollPane(panel);
然后,我将窗格添加到框架中。 现在我想在我的面板上画。我首先尝试在panel类中重写paintComponent方法。我以为我的整个面板都会被画出来,然后我就可以滚动浏览它了,因为我把面板添加到了窗格中。但每次我移动横杆,它都会不断尝试重新绘制。我的逻辑不对吗?我应该用另一种方式画画吗

我以为我的整个面板都会被画出来,然后我就可以滚动浏览它了,因为我把面板添加到了窗格中。但每次我移动横杆,它都会不断尝试重新绘制

这就是JScrollPanes的工作原理,请参阅文档以了解算法的描述


如果您的绘图算法涉及繁重的处理,或者您希望避免如此频繁地重新绘制面板,您可以改为使用Graphics2d中的drawImage,以便在滚动更新时更高效地绘制面板。

请发布,我们无法解决无法查看或复制的问题。您可以添加一些代码吗?