Hi Nihat,
There are restrictions on calling DisplayImpl.getImage from the AWT
event thread, because doing so generally results in thread deadlock.
Instead, try calling getImage from a completely separate thread. E.g.:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
new Thread() {
public void run() {
com.app.lt.CreateImage imagePr = new com.app.lt.CreateImage();
try {
BufferedImage myImage =imagePr.plotImage();
} catch (RemoteException ex) {
ex.printStackTrace();
} catch (VisADException ex) {
ex.printStackTrace();
}
}
}.start();
...
}
Also, I'm not certain what com.app.lt.CreateImage.plotImage does, but
from its name, it sounds like it builds or updates a display with
DataReferenceImpl.setData and such -- is there a reason such a method
would need to call getImage? If you can avoid the getImage call, you can
continue using the AWT event thread, if you wish.
-Curtis
ncubukcu wrote:
Hi
I am pretty new to visad and currently exploring its usage for my
applications. So far I was able to write some simple applications.
I have run into a problem when I tried to call a visad application
through and applet's "submit" button on a web site as in the
following format:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
{
Util.invoke(false,false, new Runnable() {
public void run() {
com.app.lt.CreateImage imagePr = new com.app.lt.CreateImage();
try {
BufferedImage myImage =imagePr.plotImage();
} catch (RemoteException ex) {
ex.printStackTrace();
} catch (VisADException ex) {
ex.printStackTrace();
}
}
});
.
.
the exception I get is;
Exception in thread "AWT-EventQueue-1" visad.VisADError: cannot call
getImage() from Thread: AWT-EventQueue-1
at visad.DisplayImpl.getImage(DisplayImpl.java:2630)
at visad.DisplayImpl.getImage(DisplayImpl.java:2614)
at com.app.lt.CreateImage.plotImage(CreateImage.java:94)
where line 94 has the following code;
return display.getImage();
and display object is;
DisplayImplJ2D display = new DisplayImplJ2D(" ", 700, 500);
I looked through old e.mails and it seems like this works for
everybody else. It works fine if I run the application by itself. Like
I said I am a new user and there maybe much easier way to do this but
I just don't know yet. any help is greatly appreciated... thanks in
advance..
nihat
==============================================================================
To unsubscribe visad, visit:
http://www.unidata.ucar.edu/mailing-list-delete-form.html
==============================================================================