我试图在Component和Image之间切换Panel的内容, 它适用于组件:
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)
我该怎么办?
答案 0 :(得分:3)
为什么
java.awt.Image
不被视为java.awt.Component
?
Image
扩展Object
。即。
Object
Image
Component
也扩展了Object
。即。
Object
Component
由于Component
不延伸Image
,Image
延伸Component
,因此与之间的关系。 OTOH只与Object
有是关系。 I.E. Image
是 Object
& Component
是 Object
。
我该怎么办?
在Component
中显示图像,用于显示图像,例如(ImageIcon
in)JLabel
。所以它可能看起来像这样:
panel.add( new JLabel( new ImageIcon(image) ) );
有关此概念的详细信息,请参阅“接口和继承”中的Inheritance。教程的一部分。