Flicker-free Animation Using Java

Currently the most popular use of Java seems to be in building Applets. In this article Paul shows you not only how to make a applet, but how to make it look good.


Comment viewing options

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


Unome's picture

I understand the concept of double-buffering and have used it a bunch, but I've run into a problem that I just simply cannot solve. I'm creating an applet with a little Marine that has a machine gun. A mouse listener tracks your mouses location to move his arm with the cursor angle, and a click listener fires bullets. There is more too it but thats not important. My problem is, in order to rotate the image of both his arm... and the gun I had to use AffineTransform and set somethings with that.... the methods for affineTransform aren't carried over to offscreen images, so I can't rotate the arm if I draw to an offscreen. As you can see I'm kinda stuck between a rock and a hard place. I can either have my program function smoothly with an arm that stays still as bullets fly out of nowhere. Or I can have a flickering monster that works seamlessly underneath....

Is there any other way to stop flickering? Or is their a way to make AffineTransform work with offscreen images?

Please let me know if you can! I'd really appreciate the help. I can show you my code it you need it.

Thank you !

Ulhume's picture

I spent days trying to find this tiny little getToolkit().sync() function. Great tutorial and thanks again for your help !

Re: Flicker-free Animation Using Java

Anonymous's picture

X windows double buffers too. I came across this page when i ran into a JTable flickering like crazy when you scroll it, update it, whatever on windows. I had been developing the damn thing in FreeBSD the whole time, so i never saw the flicker. When i dropped it into a webpage and tested it on a windows box, all i saw was flicker.

Silly windows..

- Kevin

Re: Flicker-free Animation Using Java

Anonymous's picture


Kevin: How did you fix it? I'm running into a similar problem, although in an application, not an applet, and on OSX, not Windows, but any hints about getting rid of redraw flicker are desperately needed.


-- Morgan

Re: Flicker-free Animation Using Java

Anonymous's picture

In Mac OS X it appears java applets are flicker free. Perhaps because all windows are double buffered to begin with ( unless for some bizarre reason ). Try it. I'm not crazy. Is it just Mac OS X thats does this? Any other operating systems that don't require direct double buffering in java?

A similar issue

Ben's picture

Yeah, I'm having the exact same problem. I thought it was because of my Eclipse build, or that I'm running Vista or something, but yes. At school, I run Java on OS X and it's silky smooth. on Vista, ugly flickering monster with the exact same code.