调整大小时会显示JDesktopPane的内容-Java Swing
我已经在JavaSwing上工作了一段时间。我在JDesktopPane上绘制一些东西(绘制一些基本形状,如圆形、矩形等),一旦我调整包含JDesktopPane的框架窗口的大小或在此框架上拖动其他窗口,绘制的形状就会消失。我使用BuffereImage类的对象来保存图像。那么,有什么方法可以防止形状消失,或者在形状消失时重新绘制它呢?您需要确保在调整大小时会显示JDesktopPane的内容-Java Swing,java,image,swing,jdesktoppane,Java,Image,Swing,Jdesktoppane,我已经在JavaSwing上工作了一段时间。我在JDesktopPane上绘制一些东西(绘制一些基本形状,如圆形、矩形等),一旦我调整包含JDesktopPane的框架窗口的大小或在此框架上拖动其他窗口,绘制的形状就会消失。我使用BuffereImage类的对象来保存图像。那么,有什么方法可以防止形状消失,或者在形状消失时重新绘制它呢?您需要确保在paintComponent()方法中保存每次绘制的内容并重新绘制。每当需要重新绘制时(例如:由于调整大小),就会自动调用此方法。我只能提供一个猜测,
paintComponent()
方法中保存每次绘制的内容并重新绘制。每当需要重新绘制时(例如:由于调整大小),就会自动调用此方法。我只能提供一个猜测,因为您决定不发布必要的代码,但我的建议是:
- 不要通过调用组件上的getGraphics来获取图形对象。相反
- 确保在对JComponent或其子类(如JPanel)进行子类化的类中进行绘图
- 在同一方法中调用super.paintComponent()后,立即在JComponent的paintComponent方法中绘制BuffereImage。使用JVM提供并传递到方法参数中的图形对象李>
- 为确保paintComponent方法的签名正确,请在其前面立即放置@Override注释。否则,如果它不正确,JVM可能不会在您期望的时候调用它
- 但是,在这里提问时,请尽量给我们提供足够的信息,这样我们就不必猜测了。既然你的问题是与图形相关的,那么发布与图形相关的代码是有意义的,对吗