1

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

我在不同的层中添加了 JWebBrowser 和 JPanel。JWebBrowser 在 0 即底层,而 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 层。

4

2 回答 2

6

我敢打赌,尽管 JWebBrowser 最终派生自 JPanel,但它的行为就像一个带有一些本机组件的重量级组件。如果是这样,您可以做的事情有限制,您可能想阅读更多关于在 Swing 应用程序中混合重型和轻型组件的信息:混合重型和轻型组件

于 2011-07-08T17:31:37.623 回答
2

If the web browser is created without any particular options, then it behaves like a heavy weight component. But if it is created with certain options, it can better mix. For example: new JWebBrowser(JWebBrowser.constrainVisibility());

Have a look at the demo application to see all sorts of integration cases and more specifically at the additional features section.

于 2011-08-31T21:32:27.397 回答