在Swing中,JPanel被称为不透明的,这是什么意思?
另外,相对于不透明性,JPanel和JComponent有何区别?
如果可能的话,请用简单的术语解释,因为我在GUI编程方面经验不太丰富。
感谢您的帮助。
在Swing中,JPanel被称为不透明的,这是什么意思?
另外,相对于不透明性,JPanel和JComponent有何区别?
如果可能的话,请用简单的术语解释,因为我在GUI编程方面经验不太丰富。
感谢您的帮助。
在Swing中,Opaque有一个非常特定的含义 - 它意味着组件完全绘制其边界内的全部区域(请参见setOpaque javadoc)。
这主要用于确定是否需要重绘当前组件后面的组件。
如果您正在创建自己的JComponent,并将setOpaque设置为true,但未遵守合同(即,尽管声称是不透明的,但没有绘制边界内的全部区域),则由于背景未重新绘制,可能会得到意外的结果。
Opaque和Transparent是相反的词。
窗户、水或空气是透明的-你可以透过它们看到外面。
墙壁、泥土或混凝土是不透明的-你无法透过它们看到外面。
在GUI编程方面,JPanel和JComponent默认情况下都是不透明的。如果您将它们设置为透明,您可能不会看到太大的区别,因为底层的JFrame(或其他)通常与JPanel/JComponent具有相同的颜色。
JPanel
的不透明性可能是默认的,也可能不是。这取决于哪个版本的 PL&F 生效。 - Tom Hawtin - tacklineJPanel
的不透明度取决于L&F! :-) - trashgod