JLayeredPane中的组件重叠



我在JLayeredPane中添加了两个组件。
1. JWebBrowser
2. JPanel

我在不同的图层中添加了JWebBrowser和JPanel。JWebBrowser在底层,JPanel在第一层。

m_LayeredPane.setLayer(m_WebBrowser, JLayeredPane.DEFAULT_LAYER);
m_LayeredPane.add(m_WebBrowser);
m_LayeredPane.setLayer(m_WebCamPane, JLayeredPane.PALETTE_LAYER);
m_LayeredPane.add(m_WebCamPane);

现在的问题是JWebBrowser层与JPanel层重叠。

我尝试了各种各样的东西,比如moveToFront()方法,在运行时定义位置,将两个组件放在同一层并使用componentZorder等。但问题还是一样的。

我不知道是什么原因导致JPanel层回到JWebBrowser层

我敢打赌,尽管JWebBrowser最终派生自JPanel,但它的行为就像一个带有一些本地组件的重量级组件。如果是这样,你所能做的就有限制了,你可能需要阅读更多关于在Swing应用中混合轻重组件的内容:

如果web浏览器是在没有任何特定选项的情况下创建的,那么它的行为就像一个重量级组件。但如果它是用特定的选项创建的,它可以更好地混合。例如:new JWebBrowser(JWebBrowser. constrainvisibility ());

查看演示应用程序以查看各种集成案例,更具体地说,请查看附加功能部分。

最新更新