日期:2014-05-20  浏览次数:20716 次

JPanel设置透明不成功
JPanel jp = new JPanel();
jp.setLayout(new BorderLayout());

loginPanel = new LoginPanel(this);
loginPanel.setOpaque(false);

flashPlayer=new FlashPlayer();
flashPlayer.setFlashfolder("src/flash");
flashPlayer.setFileName("afternoon.swf");
flashPlayer.play();

jp.add(flashPlayer.flashPanel);
this.getLayeredPane().add(jp);

this.add(loginPanel);
上面是源码的一段,this是JFrame按理说如果JPanel设置透明成功的话,应该能显示jp的动画效果啊,怎么一直是覆盖呢?求解

------解决方案--------------------
改成
loginPanel.setOpaque(false);
看看是否显示jp的动画效果,如果不显示,那就是你的jp有问题。
------解决方案--------------------
引用:
Quote: 引用:

this.add(loginPanel);

改成

setContentPane(loginPanel) 试试。

原本的 contentPane 是 opaque

还是一样的啊,会覆盖在上面


问题出在 size, JRootPane 的专用 LayoutManager 对几个特殊的层面 glassPane, contentPane 等有适应当前 size 的处理,而 JLayeredPane 默认不带 LayoutManager,所以你加进去的 jp size 为 0