File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Swing / AWT / SWT and the fly likes alpha filter of an element Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Swing / AWT / SWT
Bookmark "alpha filter of an element" Watch "alpha filter of an element" New topic

alpha filter of an element

Jim Henessey
Ranch Hand

Joined: Sep 13, 2003
Posts: 32
Is it possible to set the alpha filter of an element (0-100%) of an element? If this is not formally implemented, is there a pseudo- way of doing this? What I am looking for is something which allows elements to be semi-transparent over an image background.
Nathan Pruett

Joined: Oct 18, 2000
Posts: 4121

You can call setOpaque( false ) on any JComponent. This makes the component ignore any background color set on it and it allows the background of it's parent to show through. This isn't anything as sophisticated as setting an aplha filter, but to do that correctly you'd probably have to make a look and feel, or subclass every component. I tried overriding the paintChildren() method to paint to a buffer and mess with the buffer's alpha filter before painting the buffer on the component, and this seemed to work pretty well, except if you click on the button in the example, it isn't transparent until the parent panel is updated. I think this is because the look and feel ( or the component) calls the component's paintComponent() method directly, instead of painting the whole screen again. This is good for performance, but it breaks this alpha filter method.

I'll post the code I used to test this out, maybe it will help someone work around this problem...

Write once, run anywhere, because there's nowhere to hide! - /. A.C.
I agree. Here's the link:
subject: alpha filter of an element
It's not a secret anymore!