用BufferedImage和paint结合可以保存jDialog的图像。
但自己在jDialog上画的东西,就保存不了。为什么?
有解决办法吗?谢谢。

解决方案 »

  1.   

    BufferedImage和paint的方法可以将画的线和圆保存起来,但容器的背景无法保存。
    这样只是局部保存。觉得不是很好。也考虑用屏幕截图保存起来。
           Robot   robot   =   new   Robot();   
           Dimension   d   =   Toolkit.getDefaultToolkit().getScreenSize();   
           Rectangle   rect   =   new   Rectangle(d); 
           BufferedImage   image   =   robot.createScreenCapture(rect);  
           ImageIO.write(image,  " jpg " ,  new  File( " screen.jpg " ));但截的是空图。
      

  2.   

    Rectangle   rect   =   new   Rectangle(d); 
    这个改一下d就行了,用getX(),getY(),就可以了。
    不过屏幕截图质量真不怎么好,失真很厉害。还是要想
    想其它办法。BufferedImage不知道有没有改容器setBackground()
    的方法,就差这点。
      

  3.   

    这样的话问题又来了,的确,getX(),getY()可以获得当前窗口的位置,但是rect的长宽你该怎么定下来,除非锁定窗口大小,否则很难控制截图的区域我刚学java,想错的地方还请多包涵
      

  4.   

    Rectangle(容器.getX(),容器.getY(),容器.getWidth(),容器.getHeight())
    就可以了,我也刚学。