Re: saving display

Hi,


> >     How to save the display as a jpeg image?
> >
> >     I've tried to use getImage() of DisplayImpl, but I fail to get the 
> > bufferedImage from it, It got a visad.VisADError. Thanks.
>
> Please send the whole text of the VisADError message. Or even
> better, run under jdb, catch the VisADError, and send us a stack
> dump (the output of 'where').

        The error as follows:
//-------------------------------------------------------------------------
visad.VisADError: cannot call getImage() from Thread: AWT-EventQueue-0
        at visad.DisplayImpl.getImage(DisplayImpl.java:2622)
        at weathersys.ui.ContourDisplayFrame.visualize(Unknown Source)
        at weathersys.ui.UserInterface.contour(Unknown Source)
        at weathersys.ui.UserInterface$1.displayMenuClicked(Unknown Source)
        at weathersys.ui.MenuBar.fireMenuClicked(Unknown Source)
        at weathersys.ui.MenuBar$7.actionPerformed(Unknown Source)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:17
86)
        at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Abstra
ctButton.java:1839)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel
.java:420)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258
)
        at javax.swing.AbstractButton.doClick(AbstractButton.java:289)
        at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1
113)
        at javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mouseRelease
d(BasicMenuItemUI.java:943)
        at java.awt.Component.processMouseEvent(Component.java:5100)
        at java.awt.Component.processEvent(Component.java:4897)
        at java.awt.Container.processEvent(Container.java:1569)
        at java.awt.Component.dispatchEventImpl(Component.java:3615)
        at java.awt.Container.dispatchEventImpl(Container.java:1627)
        at java.awt.Component.dispatchEvent(Component.java:3477)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483
)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
        at java.awt.Container.dispatchEventImpl(Container.java:1613)
        at java.awt.Window.dispatchEventImpl(Window.java:1606)
        at java.awt.Component.dispatchEvent(Component.java:3477)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:201)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:151)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)

        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)

        at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

//-------------------------------------------------------------------------

        I've also try to add a line of code at one of the example of VisAD: 
Test60.java
        in the function: void setupServerData(LocalDisplay[] dpys);

        I've added a line at:
        // codes .....
          DataReferenceImpl ref_imaget1 = new DataReferenceImpl("ref_imaget1");
          ref_imaget1.setData(imaget1);
          dpys[0].addReference(ref_imaget1, null);

        // newly added:
          BufferedImage bImage = dpys[0].getImage();

        The program hangs during execution...

        Any idea? Or any other methods to save the display as a jpeg or other 
image file format? Thanks.

Regards,
Ivy