On 24.11.2016 21:11, Sergey Bylokhov wrote:
On 24.11.16 20:42, Semyon Sadetsky wrote:
It have a different implementations because it has different meaning:
 - The non-opaque window is a window which uses transparent background.
 - The non-opaque component is the component which require the parents
be painted first. it is not necessary that the background in this case
should be transparent(It is possible that the component draw something
only in some place of its bounds) And transparent color is not always
requires that the component should be non-opaque, because components
can ignore its background.
Hmm.. Both JComponent and Window override the same Component.isOpaque()
but the property has different meaning for each of them.

The requirements for Window.isOpaque() are a subset of JComponent.isOpaque(). Because the Window does not have the parents, which should/shouldn't be painted. And to be a transparent the Window must have a transparent color. Both of these cases are not applicable to the components.
Having opaque property regulated by user for per-pixel translucency is a mistake because the painted result of the translucent and opaque component will depend on the platform, the used buffer type and the pipe.

Probably, this is a design mistake?

This is how it was implemented long time ago.
It is a good chance to fix the bug at last.

Reply via email to