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.

Geek Guide
The DevOps Toolbox

Tools and Technologies for Scale and Reliability
by Linux Journal Editor Bill Childers

Get your free copy today

Sponsored by IBM

Upcoming Webinar
8 Signs You're Beyond Cron

Scheduling Crontabs With an Enterprise Scheduler
11am CDT, April 29th
Moderated by Linux Journal Contributor Mike Diehl

Sign up now

Sponsored by Skybot