This week's giveaway is in the EJB and other Java EE Technologies forum. We're giving away four copies of EJB 3 in Action and have Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan on-line! See this thread for details.
Hello, 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. Thanks.
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.