26

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

4

5 回答 5

38

setOpaque(false)

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

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

于 2008-09-10T18:19:21.130 回答
5

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

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

于 2008-09-10T18:22:47.160 回答
2

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

于 2008-09-11T12:46:34.667 回答
2

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

  1. 右键单击JPanel
  2. 向下滚动并搜索 (( Opaque ))。它必须在那里。
  3. 取消选中它。
  4. Now your JPanel background will be removed and what will appear in JPanel Background is your Background of JFrame.
于 2017-06-06T13:49:26.403 回答
1
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 ) ;
    }
}
于 2014-03-28T12:32:49.207 回答