在Swing JPanel中说不透明,这是什么意思?
JPanel VS JComponent与opaque相比如何进行比较?
请尽可能简单地解释一下,因此我对GUI编程不是很有经验。
提前感谢您的帮助
答案 0 :(得分:12)
Opaque在Swing中具有非常特殊的含义 - 它意味着组件在其范围内完全绘制了整个区域(参见setOpaque javadoc)
这主要用于确定是否需要重新绘制当前组件后面的组件。
如果您正在创建自己的JComponent并将setOpaque设置为true但是不遵守合同(即,尽管声称不透明,您不会在边界内绘制完整区域),但由于背景不正确,您可能会得到意想不到的结果重绘。
答案 1 :(得分:6)
不透明和透明是相反的词。
窗户,水或空气是透明的 - 你可以看透它们。
墙壁,泥土或混凝土是不透明的 - 你无法透视它们。
在GUI编程方面,默认情况下JPanel和JComponent都是不透明的。如果将它们设置为透明,则可能没有太大的区别,因为底层JFrame(或其他)通常与JPanel / JComponent的颜色相同。
答案 2 :(得分:2)
另一个有用的参考是文章Opacity中关于Painting in AWT and Swing的部分。知道许多opaque by default JPanel
为L&Fs,而JLabel
为not,这也很有帮助。