gpt4 book ai didi

java - 为什么 java.awt.Image 不被视为 java.awt.Component?

转载 作者:行者123 更新时间:2023-12-01 20:52:40 29 4
gpt4 key购买 nike

我试图在组件和图像之间切换面板的内容,它适用于组件:

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)

我应该在这里做什么?

最佳答案

Why java.awt.Image is not considered as java.awt.Component?

Image扩展对象。即:

  • 对象
    • 图片

一个Component还扩展了Object。即:

  • 对象
    • 组件

由于 Component 均不扩展 ImageImage 也不扩展 Component,因此 都不是 与他人的关系。 OTOH 两者仅与Object 具有is 关系。 IE。 图像 是一个 对象 & 组件 是一个 对象.

What should I do here?

在设计用于显示图像的Component中显示图像,例如JLabel(中的ImageIcon)。所以它可能看起来像这样:

panel.add( new JLabel( new ImageIcon(image) ) );
<小时/>

有关此概念的更多详细信息,请参阅 Inheritance在教程的“接口(interface)和继承”部分。

关于java - 为什么 java.awt.Image 不被视为 java.awt.Component?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42925866/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com