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

时间:2008-09-10 18:18:28

标签: java user-interface

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

5 个答案:

答案 0 :(得分:36)

setOpaque(false)

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

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

答案 1 :(得分:6)

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

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

答案 2 :(得分:2)

从技术上讲,JPanel可能会从非混淆开始。对于Gtk外观而言,这是真实的。感觉在1.5(或1.4?),但据我所知没有其他PL& Fs。

答案 3 :(得分:2)

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 ) ;
    }
}

答案 4 :(得分:2)

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

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