Opaque在Swing中具有非常特殊的含义-这意味着该组件在其边界内完全绘制了整个区域(请参见setOpaque
javadoc)
这主要用于确定是否有必要在当前组件之后重新绘制组件。
- 如果isOpaque为true,则无需重涂组件后面的任何内容(因为它将被覆盖),因此,可以将此类背景图作为优化而省略。
- 如果isOpaque为false,则表明该组件正在实现某些透明效果-例如,绘制一个在中间具有半透明窗口的组件,或者绘制一个非矩形的组件
如果创建自己的JComponent并将setOpaque设置为true,但不遵守合同(即,尽管声称自己是不透明的,但您并未在边界内绘制整个区域),则由于未重绘背景,可能会得到意想不到的结果。



