【问题标题】:Make a JPanel not draw its background (Transparent)使 JPanel 不绘制其背景(透明)
【发布时间】:2010-09-08 11:15:30
【问题描述】:

是否有可能在 Java 中让 JPanel 跳过绘制其背景,从而除了其上的组件之外是透明的?

【问题讨论】:

    标签: java user-interface


    【解决方案1】:

    setOpaque(false)

    它将绘制背景传递给它的父级,父级可能会绘制自己的背景。

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

    【讨论】:

      【解决方案2】:

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

      https://docs.oracle.com/javase/tutorial/uiswing/misc/trans_shaped_windows.html

      【讨论】:

      • Java SE 7 是必需的。我使用的是具有 OpenJDK 6.0 的 Linux,但无法正常工作。
      【解决方案3】:

      从技术上讲,JPanel 可能一开始是不透明的。 1.5(或 1.4?)中的 Gtk 外观和感觉确实如此,但据我所知,没有其他 PL&F。

      【讨论】:

        【解决方案4】:

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

        1. 右键点击JPanel。
        2. 向下滚动并搜索 (( Opaque ))。它一定在那里。
        3. 取消选中它。
        4. 现在您的JPanel 背景将被删除,并且将出现在 JPanel 背景是您的JFrame 背景。

        【讨论】:

          【解决方案5】:
          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 ) ;
              }
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-07-27
            • 1970-01-01
            • 1970-01-01
            • 2020-08-17
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多