1

JLayeredPaneに2つのコンポーネントを追加しました。
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レイヤーに戻る原因がわかりません。

4

2 に答える 2

6

JWebBrowserは最終的にJPanelから派生しますが、いくつかのネイティブコンポーネントを備えた重量のあるコンポーネントとして動作することは間違いありません。もしそうなら、あなたができることには制限があり、Swingアプリで重いコンポーネントと軽いコンポーネントを一緒に混合することについてもっと読むことをお勧めします:重いコンポーネントと軽いコンポーネントの混合

于 2011-07-08T17:31:37.623 に答える
2

Webブラウザーが特定のオプションなしで作成された場合、それは重量のあるコンポーネントのように動作します。ただし、特定のオプションを使用して作成した場合は、より適切に組み合わせることができます。例:new JWebBrowser(JWebBrowser.constrainVisibility());

デモアプリケーションを見て、あらゆる種類の統合ケース、より具体的には追加機能のセクションを確認してください。

于 2011-08-31T21:32:27.397 に答える