JPanel说不透明是什么意思?

sky*_*ar7 5 java user-interface swing

在Swing JPanel中说不透明,这是什么意思?

另外JPanel VS JComponent与不透明相比如何?

请尽可能简单地解释,因此我对GUI编程不是很有经验.

在此先感谢您的帮助

mik*_*era 12

不透明在Swing中具有非常特殊的含义 - 它意味着组件在其边界内完全绘制整个区域(请参阅setOpaque javadoc))

这主要用于确定是否需要重新绘制当前组件后面的组件.

  • 如果isOpaque为真,则不必重新绘制组件后面的任何内容(因为它只会被覆盖),因此可以省略这种背景绘制作为优化.
  • 如果isOpaque为false,则表示组件正在实现一些透明效果 - 例如,绘制中间具有半透明窗口的组件,或绘制非矩形组件

如果您正在创建自己的JComponent并将setOpaque设置为true但是不遵守合同(即,尽管声称不透明,您也不会在边界内绘制完整区域),但由于背景未重新绘制,您可能会得到意外结果.


And*_*son 6

不透明和透明是相反的词.

窗户,水或空气都是透明的 - 你可以看透它们.

墙,泥或混凝土是不透明的 - 你无法透视它们.

在GUI编程方面,默认情况下JPanel和JComponent都是不透明的.如果将它们设置为透明,则可能没有太大的区别,因为底层JFrame(或其他)通常与JPanel/JComponent的颜色相同.