2 JPanels的奇怪问题

时间:2013-02-23 22:11:09

标签: java swing jpanel jlayeredpane

我有一个包含JLayeredPane的JFrame,其中包含2个JPanel,一个在另一个之上。

前面的JPanel是一个带有一些按钮的简单GridLayout。

背面的JPanel是一张必须定期更换的图片。它基本上是来自相机的snapsnot,并且必须每秒更新几次。

要定期在此JPanel上绘制图像,我将调用此updateImage方法:

public void updateImage(Image image)
{
    if(image == null) return;
    setSize(image.getWidth(null),image.getHeight(null));
    this.image = image;
    this.repaint();
}

@Override
public void paintComponent(Graphics g)  
{   
    super.paintComponent(g);
    g.drawImage(image,0,0,null); 
} 

但是,每次调用paintComponent时,前面板都会被隐藏。

我尝试了几种不同的东西,最接近我的工作是通过调用:

((JLayeredPane)this.getParent()).setLayer(this, 0);

在paintComponent方法的底部。这有效,但速度非常慢。

我还能做什么?

顺便说一下,这不是JLayeredPane的问题,我已经尝试过与其他几个布局管理器,基本上每次它仍然隐藏在后面的面板。

非常感谢您提出任何建议!

0 个答案:

没有答案