Last week, we had the author of TDD for a Shopping Website LiveProject. Friday at 11am Ranch time, Steven Solomon will be hosting a live TDD session just for us. See for the agenda and registration link
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
  • Campbell Ritchie
  • Paul Clapham
  • Ron McLeod
  • Jeanne Boyarsky
  • Tim Cooke
  • Liutauras Vilda
  • paul wheaton
  • Henry Wong
Saloon Keepers:
  • Tim Moores
  • Tim Holloway
  • Stephan van Hulst
  • Carey Brown
  • Frits Walraven
  • Piet Souris
  • Himai Minh

alpha filter of an element

Ranch Hand
Posts: 32
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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.
Posts: 4121
IntelliJ IDE Spring Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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...

Morning came much too soon and it brought along a friend named Margarita Hangover, and a tiny ad.
Free, earth friendly heat - from the CodeRanch trailboss
    Bookmark Topic Watch Topic
  • New Topic