我在JLayeredPane中添加了两个组件
1. JWebBrowser
2. JPanel
我在不同的层中添加了JWebBrowser和JPanel。 JWebBrowser在0层,即底层,JPanel在第1层。
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层。
答案 0 :(得分:6)
我敢打赌,即使JWebBrowser最终从JPanel派生出来,它表现为一个带有一些原生组件的重量级组件。如果是这样,您可以做的事情有限制,您可能想要阅读更多关于在Swing应用程序中混合重量和轻量级组件的更多信息:Mixing Heavy and Light Weight Components
答案 1 :(得分:2)
如果创建的Web浏览器没有任何特定选项,那么它的行为就像一个重量级组件。但如果它是用某些选项创建的,它可以更好地混合。 例如:new JWebBrowser(JWebBrowser.constrainVisibility());
查看演示应用程序以查看各种集成案例,更具体地说,请参阅其他功能部分。