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.
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 ]
posted 15 years ago
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().