2017-03-21 40 views
0

我试图面板的内容开关元件和图像之间, 它适用于组件:为什么java.awt.Image不被视为java.awt.Component?

imgpanel.removeAll(); 
Component comp; 
if ((comp = player.getVisualComponent()) != null) { 
    imgpanel.add(comp); 
} 

因为图片:

btoi = new BufferToImage((VideoFormat) buf.getFormat()); 
img = btoi.createImage(buf); 
imgpanel.removeAll(); 
imgpanel.add(img);//The method add(Component) in the type Container is not applicable for the arguments (Image) 

我应该怎么做吗?

回答

3

为什么java.awt.Image不被认为是java.awt.Component

Image延伸Object。 I.E.

  • Object
    • Image

Component也延伸Object。 I.E.

  • Object
    • Component

由于既不Component延伸Image,也不Image延伸Component,既不具有关系到另一个。 OTOH都有Object只有关系。 I.E. ImageObject & ComponentObject

我应该在这里做什么?

显示在Component图像设计成显示图像,诸如(在ImageIcon)一个JLabel。因此,它可能是这样的:

panel.add(new JLabel(new ImageIcon(image))); 

,详细了解这个概念,查看教程中的“接口和继承”部分Inheritance

相关问题