Skip to main content

[JAVA2D] How to create Image on headless machine?

11 replies [Last post]
Anonymous

I want to create an Image from "scratch", get its graphics, draw into
it, then use the Image to create a Jpeg.

I can do all of this on a client JVM, but I have never tried this on
the server side, and now I'm running into HeadlessExceptions.

I vaguely recall that Java 1.4 provided some way to create images even
in a headless environment, and I hope my memory is correct.

What's the proper way to do this?

Thanks!

Rob Ross, Senior Software Engineer
E! Networks
rross@eentertainment.com
---------------------------------------------------
"Beware of he who would deny you access to information, for in his
heart he dreams himself your master." -- Commissioner Pravin Lal

===========================================================================
To unsubscribe, send email to listserv@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST". For general help, send email to
listserv@java.sun.com and include in the body of the message "help".

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Dmitri Trembovetski

Hello,

could it be that some of your transparent components don't set
'opaque' property to false and not filling the whole area they're
responsible for? This may cause the artifacts you're
seeing.

Check out these articles, the may have some relevant info:
http://java.sun.com/products/jfc/tsc/articles/swing2d/index.html
http://java.sun.com/products/jfc/tsc/articles/fill-article1/index.html

Thank you,
Dmitri

On Thu, Aug 12, 2004 at 11:41:29PM -0400, Clifford Lyon wrote:
> Hello list, I have a Java 2D application where I show an image, and then display a transparent internal frame over the image that exposes controls to the user for adjusting parameters. Everything works fine, except when moving the knob on my JSlider, the internal frame background fills with random stuff. Any way around that? Custom painting?
>
> tia
>
> ===========================================================================
> To unsubscribe, send email to listserv@java.sun.com and include in the body
> of the message "signoff JAVA2D-INTEREST". For general help, send email to
> listserv@java.sun.com and include in the body of the message "help".

===========================================================================
To unsubscribe, send email to listserv@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST". For general help, send email to
listserv@java.sun.com and include in the body of the message "help".

Clifford Lyon

Hi Dmitri, I have read and enjoyed the first article very much, but hadn't seen the second one - thanks very much for the pointer, it looks really interesting. I will indeed check it out.

Cliff

----- Original Message -----
From: "Dmitri Trembovetski"
To: "Clifford Lyon"
Cc:
Sent: Friday, August 13, 2004 9:58 AM
Subject: Re: [JAVA2D] Transparent internal frames

>
> Hello,
>
> could it be that some of your transparent components don't set
> 'opaque' property to false and not filling the whole area they're
> responsible for? This may cause the artifacts you're
> seeing.
>
> Check out these articles, the may have some relevant info:
> http://java.sun.com/products/jfc/tsc/articles/swing2d/index.html
> http://java.sun.com/products/jfc/tsc/articles/fill-article1/index.html
>
> Thank you,
> Dmitri
>
> On Thu, Aug 12, 2004 at 11:41:29PM -0400, Clifford Lyon wrote:
> > Hello list, I have a Java 2D application where I show an image, and then display a transparent internal frame over the image that exposes controls to the user for adjusting parameters. Everything works fine, except when moving the knob on my JSlider, the internal frame background fills with random stuff. Any way around that? Custom painting?
> >
> > tia
> >
> > ===========================================================================
> > To unsubscribe, send email to listserv@java.sun.com and include in the body
> > of the message "signoff JAVA2D-INTEREST". For general help, send email to
> > listserv@java.sun.com and include in the body of the message "help".

===========================================================================
To unsubscribe, send email to listserv@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST". For general help, send email to
listserv@java.sun.com and include in the body of the message "help".
[att1.html]

Dmitri Trembovetski

As long as we're here, you might want to find interesting
Chet's recent blog:
http://weblogs.java.net/pub/wlg/1739
It's not directly relevant to your question, but anyway.

I've also forwarded your question (with the sample code) to the
swing team.

Thank you,
Dmitri

On Fri, Aug 13, 2004 at 10:27:39PM -0400, Clifford Lyon wrote:
> Hi Dmitri, I have read and enjoyed the first article very much, but hadn't seen the second one - thanks very much for the pointer, it looks really interesting. I will indeed check it out.
>
> Cliff
>
>
> ----- Original Message -----
> From: "Dmitri Trembovetski"
> To: "Clifford Lyon"
> Cc:
> Sent: Friday, August 13, 2004 9:58 AM
> Subject: Re: [JAVA2D] Transparent internal frames
>
>
> >
> > Hello,
> >
> > could it be that some of your transparent components don't set
> > 'opaque' property to false and not filling the whole area they're
> > responsible for? This may cause the artifacts you're
> > seeing.
> >
> > Check out these articles, the may have some relevant info:
> > http://java.sun.com/products/jfc/tsc/articles/swing2d/index.html
> > http://java.sun.com/products/jfc/tsc/articles/fill-article1/index.html
> >
> > Thank you,
> > Dmitri
> >
> > On Thu, Aug 12, 2004 at 11:41:29PM -0400, Clifford Lyon wrote:
> > > Hello list, I have a Java 2D application where I show an image, and then display a transparent internal frame over the image that exposes controls to the user for adjusting parameters. Everything works fine, except when moving the knob on my JSlider, the internal frame background fills with random stuff. Any way around that? Custom painting?
> > >
> > > tia
> > >
> > > ===========================================================================
> > > To unsubscribe, send email to listserv@java.sun.com and include in the body
> > > of the message "signoff JAVA2D-INTEREST". For general help, send email to
> > > listserv@java.sun.com and include in the body of the message "help".

===========================================================================
To unsubscribe, send email to listserv@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST". For general help, send email to
listserv@java.sun.com and include in the body of the message "help".

Clifford Lyon

Thanks. I realized what makes the JInternalFrame see through in the sample
is actually the setBackground call. The setOpaque() on the JInternalFrame
doesn't allow you to see the image layered behind - its as if setOpaque was
never called.

So, that's why the example isn't working. For now, I've gone to a JPanel
with a "Close" button on it - that seems to work fine. But I'd be
interested in hearing about how to do a transparent JInternalFrame - and
more, about doing a JInternalFrame with an alpha < 1 (255) for the
background color.

Thanks.

----- Original Message -----
From: "Dmitri Trembovetski"
To:
Sent: Saturday, August 14, 2004 6:52 PM
Subject: Re: [JAVA2D] Transparent internal frames

> As long as we're here, you might want to find interesting
> Chet's recent blog:
> http://weblogs.java.net/pub/wlg/1739
> It's not directly relevant to your question, but anyway.
>
> I've also forwarded your question (with the sample code) to the
> swing team.
>
> Thank you,
> Dmitri
>
> On Fri, Aug 13, 2004 at 10:27:39PM -0400, Clifford Lyon wrote:
> > Hi Dmitri, I have read and enjoyed the first article very much, but
hadn't seen the second one - thanks very much for the pointer, it looks
really interesting. I will indeed check it out.
> >
> > Cliff
> >
> >
> > ----- Original Message -----
> > From: "Dmitri Trembovetski"
> > To: "Clifford Lyon"
> > Cc:
> > Sent: Friday, August 13, 2004 9:58 AM
> > Subject: Re: [JAVA2D] Transparent internal frames
> >
> >
> > >
> > > Hello,
> > >
> > > could it be that some of your transparent components don't set
> > > 'opaque' property to false and not filling the whole area they're
> > > responsible for? This may cause the artifacts you're
> > > seeing.
> > >
> > > Check out these articles, the may have some relevant info:
> > > http://java.sun.com/products/jfc/tsc/articles/swing2d/index.html
> > >
http://java.sun.com/products/jfc/tsc/articles/fill-article1/index.html
> > >
> > > Thank you,
> > > Dmitri
> > >
> > > On Thu, Aug 12, 2004 at 11:41:29PM -0400, Clifford Lyon wrote:
> > > > Hello list, I have a Java 2D application where I show an image,
and then display a transparent internal frame over the image that exposes
controls to the user for adjusting parameters. Everything works fine,
except when moving the knob on my JSlider, the internal frame background
fills with random stuff. Any way around that? Custom painting?
> > > >
> > > > tia
> > > >
> > > >
===========================================================================
> > > > To unsubscribe, send email to listserv@java.sun.com and include in
the body
> > > > of the message "signoff JAVA2D-INTEREST". For general help, send
email to
> > > > listserv@java.sun.com and include in the body of the message
"help".
>
>
===========================================================================
> To unsubscribe, send email to listserv@java.sun.com and include in the
body
> of the message "signoff JAVA2D-INTEREST". For general help, send email to
> listserv@java.sun.com and include in the body of the message "help".

===========================================================================
To unsubscribe, send email to listserv@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST". For general help, send email to
listserv@java.sun.com and include in the body of the message "help".

Dmitri Trembovetski

Hi Cliff,

here's a response from Swing's team Scott Violet (he was unable to
post the response on the list for some reason):

Hi Cliff.
The problem lies with setting the background color to a transparent
color. JComponent offers two very closely related properties: opaque
and background. The opaque property is used an optimization in
Swing's painting infrastructure to know where painting needs to
originate from. If opaque is true, a JComponent must fill in it's
background in an opaque color, otherwise painting artifacts will
result. The reason your code isn't working is because the content
pane of the internal frame inherits the background color of the
internal frame, a translucent color in your case, but the content
panes opaque property is true. So, to get this code to work invoke
getContentPane().setOpaque(false) and no artifacts will result:)
Additionally you don't need to set the background color to translucent
here, if opaque is false JComponent's generally don't fill in their
background.

Thank you,
Dmitri

On Sun, Aug 15, 2004 at 02:25:32AM -0400, Clifford Lyon wrote:
> Thanks. I realized what makes the JInternalFrame see through in the sample
> is actually the setBackground call. The setOpaque() on the JInternalFrame
> doesn't allow you to see the image layered behind - its as if setOpaque was
> never called.
>
> So, that's why the example isn't working. For now, I've gone to a JPanel
> with a "Close" button on it - that seems to work fine. But I'd be
> interested in hearing about how to do a transparent JInternalFrame - and
> more, about doing a JInternalFrame with an alpha < 1 (255) for the
> background color.
>
> Thanks.
>
> From: "Dmitri Trembovetski"
> To:
> Sent: Saturday, August 14, 2004 6:52 PM
> Subject: Re: [JAVA2D] Transparent internal frames
>
>
> > As long as we're here, you might want to find interesting
> > Chet's recent blog:
> > http://weblogs.java.net/pub/wlg/1739
> > It's not directly relevant to your question, but anyway.
> >
> > I've also forwarded your question (with the sample code) to the
> > swing team.
> >
> > Thank you,
> > Dmitri
> >
> > On Fri, Aug 13, 2004 at 10:27:39PM -0400, Clifford Lyon wrote:
> > > Hi Dmitri, I have read and enjoyed the first article very much, but
> hadn't seen the second one - thanks very much for the pointer, it looks
> really interesting. I will indeed check it out.
> > >
> > > Cliff
> > >
> > >
> > > From: "Dmitri Trembovetski"
> > > To: "Clifford Lyon"
> > > Cc:
> > > Sent: Friday, August 13, 2004 9:58 AM
> > > Subject: Re: [JAVA2D] Transparent internal frames
> > >
> > >
> > > >
> > > > Hello,
> > > >
> > > > could it be that some of your transparent components don't set
> > > > 'opaque' property to false and not filling the whole area they're
> > > > responsible for? This may cause the artifacts you're
> > > > seeing.
> > > >
> > > > Check out these articles, the may have some relevant info:
> > > > http://java.sun.com/products/jfc/tsc/articles/swing2d/index.html
> > > >
> http://java.sun.com/products/jfc/tsc/articles/fill-article1/index.html
> > > >
> > > > Thank you,
> > > > Dmitri
> > > >
> > > > On Thu, Aug 12, 2004 at 11:41:29PM -0400, Clifford Lyon wrote:
> > > > > Hello list, I have a Java 2D application where I show an image,
> and then display a transparent internal frame over the image that exposes
> controls to the user for adjusting parameters. Everything works fine,
> except when moving the knob on my JSlider, the internal frame background
> fills with random stuff. Any way around that? Custom painting?
> > > > >
> > > > > tia
> > > > >
> > > > >
> ===========================================================================
> > > > > To unsubscribe, send email to listserv@java.sun.com and include in
> the body
> > > > > of the message "signoff JAVA2D-INTEREST". For general help, send
> email to
> > > > > listserv@java.sun.com and include in the body of the message
> "help".
> >
> >
> ===========================================================================
> > To unsubscribe, send email to listserv@java.sun.com and include in the
> body
> > of the message "signoff JAVA2D-INTEREST". For general help, send email to
> > listserv@java.sun.com and include in the body of the message "help".
>

===========================================================================
To unsubscribe, send email to listserv@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST". For general help, send email to
listserv@java.sun.com and include in the body of the message "help".

Dmitri Trembovetski

Hello Rob,

I'm assuming you're already running with headless toolkit (because
you're getting the HeadlessException).

You can use java.awt.image.BufferedImage class to create images in
headless environment, and javax.imageio package to read/write
images.

Thank you,
Dmitri

On Wed, Aug 11, 2004 at 11:41:25AM -0700, Rob Ross wrote:
> I want to create an Image from "scratch", get its graphics, draw into
> it, then use the Image to create a Jpeg.
>
> I can do all of this on a client JVM, but I have never tried this on
> the server side, and now I'm running into HeadlessExceptions.
>
> I vaguely recall that Java 1.4 provided some way to create images even
> in a headless environment, and I hope my memory is correct.
>
> What's the proper way to do this?
>
> Thanks!
>
>
> Rob Ross, Senior Software Engineer
> E! Networks
> rross@eentertainment.com
> "Beware of he who would deny you access to information, for in his
> heart he dreams himself your master." -- Commissioner Pravin Lal
>
> ===========================================================================
> To unsubscribe, send email to listserv@java.sun.com and include in the body
> of the message "signoff JAVA2D-INTEREST". For general help, send email to
> listserv@java.sun.com and include in the body of the message "help".

===========================================================================
To unsubscribe, send email to listserv@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST". For general help, send email to
listserv@java.sun.com and include in the body of the message "help".

Clifford Lyon

Hello list, I have a Java 2D application where I show an image, and then display a transparent internal frame over the image that exposes controls to the user for adjusting parameters. Everything works fine, except when moving the knob on my JSlider, the internal frame background fills with random stuff. Any way around that? Custom painting?

tia

===========================================================================
To unsubscribe, send email to listserv@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST". For general help, send email to
listserv@java.sun.com and include in the body of the message "help".
[att1.html]

Chet Haase

Hi,

It's pretty difficult to know from your quick description where the
problem would lie.
There is no inherent problem with using transparent internal frames in
Swing, but
you need to make sure to set and use the opacity property of the
component(s)
appropriately and to do the right thing during paintComponent(). Other than
that very high-level suggestion, it's hard to know what else to say.
There could
be a bug lurking here in how we implement scrolling (devCopyArea) on
translucent
components, but a test case would sure help...

Chet.

Clifford Lyon wrote:

> Hello list, I have a Java 2D application where I show an image, and
> then display a transparent internal frame over the image that exposes
> controls to the user for adjusting parameters. Everything works fine,
> except when moving the knob on my JSlider, the internal frame
> background fills with random stuff. Any way around that? Custom
> painting?
>
> tia
> ===========================================================================
> To unsubscribe, send email to listserv@java.sun.com and include in the
> body of the message "signoff JAVA2D-INTEREST". For general help, send
> email to listserv@java.sun.com and include in the body of the message
> "help".

===========================================================================
To unsubscribe, send email to listserv@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST". For general help, send email to
listserv@java.sun.com and include in the body of the message "help".

Clifford Lyon

Here is a short piece of code that demonstrates the effect. First, if I click on the slider, the Internal Frame gets repainted on its own content frame. Then, if I move the slider, I see knob artifacts. The latter is easy to fix by repainting in the actionListener; the former I have not figured out, but I'm probably doing something wrong with the layered pane.

Thanks - also feel free to steer me to another interest group.

Cliff

/*****************************/

import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.*;

public class TestJFrame
{ public static void main (String args[])
{ try
{ JFrame frame = new JFrame();
BufferedImage image = ImageIO.read(new File(args[0]));
ImageScreen imageScreen = new ImageScreen(image);
SliderFrame sliderFrame = new SliderFrame();
sliderFrame.setBounds(0,0,image.getWidth()/2,image.getHeight()/2);
sliderFrame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(imageScreen);
frame.getLayeredPane().add(sliderFrame,JLayeredPane.DEFAULT_LAYER);
frame.pack();
frame.setSize(image.getWidth(),image.getHeight());
frame.show();
} catch ( Exception e )
{ e.printStackTrace();
}
}
}
class ImageScreen extends JComponent
{ BufferedImage image;
public ImageScreen(BufferedImage bi){
super();
image = bi;
}
public void paintComponent(Graphics g){
Rectangle r = this.getBounds();
if (image != null )
g.drawImage(image,0,0,r.width,r.height,this);
}
}
class SliderFrame extends JInternalFrame
{ JSlider slider = new JSlider();
public SliderFrame()
{ super();
slider.setOpaque(false);
this.setOpaque(false);
slider.setBackground(new Color(0,0,0,0));
this.setBackground(new Color(0,0,0,0));
this.getContentPane().add(slider);
}
}

----- Original Message -----
From: "Chet Haase"
To:
Sent: Friday, August 13, 2004 9:56 AM
Subject: Re: [JAVA2D] Transparent internal frames

> Hi,
>
> It's pretty difficult to know from your quick description where the
> problem would lie.
> There is no inherent problem with using transparent internal frames in
> Swing, but
> you need to make sure to set and use the opacity property of the
> component(s)
> appropriately and to do the right thing during paintComponent(). Other than
> that very high-level suggestion, it's hard to know what else to say.
> There could
> be a bug lurking here in how we implement scrolling (devCopyArea) on
> translucent
> components, but a test case would sure help...
>
> Chet.
>
>
> Clifford Lyon wrote:
>
> > Hello list, I have a Java 2D application where I show an image, and
> > then display a transparent internal frame over the image that exposes
> > controls to the user for adjusting parameters. Everything works fine,
> > except when moving the knob on my JSlider, the internal frame
> > background fills with random stuff. Any way around that? Custom
> > painting?
> >
> > tia
> > ===========================================================================
> > To unsubscribe, send email to listserv@java.sun.com and include in the
> > body of the message "signoff JAVA2D-INTEREST". For general help, send
> > email to listserv@java.sun.com and include in the body of the message
> > "help".
>
> ===========================================================================
> To unsubscribe, send email to listserv@java.sun.com and include in the body
> of the message "signoff JAVA2D-INTEREST". For general help, send email to
> listserv@java.sun.com and include in the body of the message "help".

===========================================================================
To unsubscribe, send email to listserv@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST". For general help, send email to
listserv@java.sun.com and include in the body of the message "help".
[att1.html]

Clifford Lyon

It seems to me when clicking on the slider, the JInternalFrame is repainted from the place where the contentPane starts, instead of where the menu bar starts.
----- Original Message -----
From: Clifford Lyon
To: JAVA2D-INTEREST@JAVA.SUN.COM
Sent: Saturday, August 14, 2004 3:46 PM
Subject: Re: [JAVA2D] Transparent internal frames

Here is a short piece of code that demonstrates the effect. First, if I click on the slider, the Internal Frame gets repainted on its own content frame. Then, if I move the slider, I see knob artifacts. The latter is easy to fix by repainting in the actionListener; the former I have not figured out, but I'm probably doing something wrong with the layered pane.

Thanks - also feel free to steer me to another interest group.

Cliff

/*****************************/

import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.*;

public class TestJFrame
{ public static void main (String args[])
{ try
{ JFrame frame = new JFrame();
BufferedImage image = ImageIO.read(new File(args[0]));
ImageScreen imageScreen = new ImageScreen(image);
SliderFrame sliderFrame = new SliderFrame();
sliderFrame.setBounds(0,0,image.getWidth()/2,image.getHeight()/2);
sliderFrame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(imageScreen);
frame.getLayeredPane().add(sliderFrame,JLayeredPane.DEFAULT_LAYER);
frame.pack();
frame.setSize(image.getWidth(),image.getHeight());
frame.show();
} catch ( Exception e )
{ e.printStackTrace();
}
}
}
class ImageScreen extends JComponent
{ BufferedImage image;
public ImageScreen(BufferedImage bi){
super();
image = bi;
}
public void paintComponent(Graphics g){
Rectangle r = this.getBounds();
if (image != null )
g.drawImage(image,0,0,r.width,r.height,this);
}
}
class SliderFrame extends JInternalFrame
{ JSlider slider = new JSlider();
public SliderFrame()
{ super();
slider.setOpaque(false);
this.setOpaque(false);
slider.setBackground(new Color(0,0,0,0));
this.setBackground(new Color(0,0,0,0));
this.getContentPane().add(slider);
}
}

----- Original Message -----
From: "Chet Haase"
To:
Sent: Friday, August 13, 2004 9:56 AM
Subject: Re: [JAVA2D] Transparent internal frames

> Hi,
>
> It's pretty difficult to know from your quick description where the
> problem would lie.
> There is no inherent problem with using transparent internal frames in
> Swing, but
> you need to make sure to set and use the opacity property of the
> component(s)
> appropriately and to do the right thing during paintComponent(). Other than
> that very high-level suggestion, it's hard to know what else to say.
> There could
> be a bug lurking here in how we implement scrolling (devCopyArea) on
> translucent
> components, but a test case would sure help...
>
> Chet.
>
>
> Clifford Lyon wrote:
>
> > Hello list, I have a Java 2D application where I show an image, and
> > then display a transparent internal frame over the image that exposes
> > controls to the user for adjusting parameters. Everything works fine,
> > except when moving the knob on my JSlider, the internal frame
> > background fills with random stuff. Any way around that? Custom
> > painting?
> >
> > tia
> > ===========================================================================
> > To unsubscribe, send email to listserv@java.sun.com and include in the
> > body of the message "signoff JAVA2D-INTEREST". For general help, send
> > email to listserv@java.sun.com and include in the body of the message
> > "help".
>
> ===========================================================================
> To unsubscribe, send email to listserv@java.sun.com and include in the body
> of the message "signoff JAVA2D-INTEREST". For general help, send email to
> listserv@java.sun.com and include in the body of the message "help". =========================================================================== To unsubscribe, send email to listserv@java.sun.com and include in the body of the message "signoff JAVA2D-INTEREST". For general help, send email to listserv@java.sun.com and include in the body of the message "help".

===========================================================================
To unsubscribe, send email to listserv@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST". For general help, send email to
listserv@java.sun.com and include in the body of the message "help".
[att1.html]

Rosenstrauch, David

> I want to create an Image from "scratch", get its graphics, draw into
> it, then use the Image to create a Jpeg.
>
> I can do all of this on a client JVM, but I have never tried this on
> the server side, and now I'm running into HeadlessExceptions.
>
> I vaguely recall that Java 1.4 provided some way to create images even
> in a headless environment, and I hope my memory is correct.
>
> What's the proper way to do this?
>
> Thanks!
>
>
> Rob Ross, Senior Software Engineer

If I recall correctly:

java -D java.awt.headless=true

DR

==============================================================================
This message is for the sole use of the intended recipient. If you received
this message in error please delete it and notify us. If this message was
misdirected, CSFB does not waive any confidentiality or privilege. CSFB
retains and monitors electronic communications sent through its network.
Instructions transmitted over this system are not binding on CSFB until they
are confirmed by us. Message transmission is not guaranteed to be secure.
==============================================================================

===========================================================================
To unsubscribe, send email to listserv@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST". For general help, send email to
listserv@java.sun.com and include in the body of the message "help".