Win a copy of Kotlin in Action this week in the Kotlin forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

Problem repainting overlapping JPanels  RSS feed

 
Rich Smyth
Ranch Hand
Posts: 87
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I have added a JPanel to a JPanel. The JPanel 'on top' has a tooltip.
If the tooltip is displayed such that the tooltip window is completely within the bounds of the 'upper' JPanel, the area occupied by the tooltip window is not repainted when the tooltip disapears. Can anybody explain why?

The code below demonstrates the problem.

If you run the code: display the tooltip over the grey JPanel. If the tooltip window does not overlap the white JPanel, the repainting
does not occur. If the tooltip touches the white JPanel everything is
ok.



Rich
[ July 18, 2004: Message edited by: Rich Smyth ]
 
David Weitzman
Ranch Hand
Posts: 1365
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Transparent background colors don't tend to work. The JComponent javadocs specify that an opaque component must paint every pixel within its bounds in a non-transparent color. This is a reasonable definition of opaque because it allows less painting when components overlap, but it won't work in this scenario.

To handle the transparency, you might be able to get away with something like this:


[ July 18, 2004: Message edited by: David Weitzman ]
 
Rich Smyth
Ranch Hand
Posts: 87
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
David,

Thank you for the lucid explanation. Your recommendation does the trick.
BTW, in the overriding paintComponent() method I'm sure you meant
super.paintComponent(), not super.paint().

thanks again,

Rich
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!