2011-07-08 31 views
1

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

我加入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层。

+1

您运行的是哪个Java版本? – jzd

+0

@jzd:我正在使用java版本“1.6.0_26” –

回答

6

我敢打赌,即使JWebBrowser最终从JPanel派生出来,它表现为一个具有某些本地组件的重量级组件。如果是这样,你可以做什么是有限制的,你可能想要了解更多关于在Swing应用程序中混合重量和轻量级组件的情况:Mixing Heavy and Light Weight Components

+0

我在想同样的事情。转移到当前版本的Java 6应该解决这个问题。 – jzd

+0

@jzd:我听说Java 1.6在这方面的表现更好,但还没有尝试过。 –

+0

经过1.6的某个版本,我不记得究竟是哪一个,但基本上这不是问题。 – jzd

2

如果Web浏览器没有任何特定选项创建,那么它表现得像一个重量级的组件。但如果它是用某些选项创建的,它可以更好地混合。例如:新的JWebBrowser(JWebBrowser.constrainVisibility());

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

+0

克里斯托弗,我想过对你的问题追踪器发表评论,但不记得我的SF密码。你可以,请回答我的[SO问题](http://stackoverflow.com/questions/22876710)? – tavlima