转发图片的问题

时间:2016-11-21 21:08:03

标签: java bufferedimage downcast

我遇到了一个关于java的转发问题。

这是情节: 类MyPicture扩展了抽象类BufferedImage。关键是要向BufferedImage添加一些方法。然后,我有一个类MyWindow,它设置了一个用户友好的窗口。在本课程中,我想在MyPic中加载图片,将其复制到MyPic_filtered,使用MyPicture MyPic_filtered上使用的方法,最后显示MyPicMyPic_filtered在分开的窗口中(但最后一部分是OK ^^)。 我不知道我应该为MyPicMyPic_filtered使用哪些类型。我尝试用正确的类型转换它们,它构建但不会运行。

以下是代码:

//Loading the picture
BufferedImage MyPic = ImageIO.read(new File(URL)); //URL is a string
//Copy the picture 
MyPicture myPic_filtered = myPic;               
//Use the method from MyPicture
myPic_filtered.method_from_MyPicture();`

有人能帮帮我吗?

1 个答案:

答案 0 :(得分:0)

当您尝试将基类实例传递给扩展实例时,可以添加一个脚轮,例如:

MyPicture myPic_filtered = (MyPicture)myPic; 

然后,您可以使用关键字访问“myPic”。

或者您可能不需要扩展BufferedImage。只需将bufferedImage视为实例变量,例如:

class MyPicture { 
    BufferedImage bi;
    //other variables
    ......;

    public MyPicture(BufferedImage input) {
          this.bi = input;
    }

    public BufferedImage method_from_MyPicture() {
         //Do something with bi and output
         ........
    }
}

不确定哪种结构更好。但它以任何一种方式解决了这个问题。