使JPanel不绘制其背景(透明)

在Java中,是否有可能使JPanel跳过它的背景,因此除了它上面的组件之外它是透明的?

setOpaque(false)

它会将背景绘制为其父级,这可能会绘制自己的背景。

您可以执行屏幕捕获,然后使用它来绘制面板的背景。

这篇文章似乎有一些关于如何在Java中创建形状和透明窗口的方便信息:

http://today.java.net/pub/a/today/2008/03/18/translucent-and-shaped-swing-windows.html

从技术上讲,JPanel可能会从非混淆开始。 这对于1.5(或1.4?)的Gtk外观和感觉来说都是如此,但据我所知,没有其他PL&F。

 class TransparentJPanel extends JPanel { TransparentJPanel() { super() ; this.setOpaque( false ) ; // this will make the JPanel transparent // but not its components (JLabel, TextField etc.) this.setLayout( null ) ; } } 

如果您使用的是NetBeans,请执行以下步骤: –

  1. 右键单击JPanel
  2. 向下滚动并搜索((不透明))。 一定是在那里。
  3. 取消选中它。
  4. 现在您的JPanel背景将被删除, JPanel背景中显示的内容是您的JFrame背景。