需要帮助获取图像的高度(可能的继承问题)

时间:2011-04-13 15:11:50

标签: java image inheritance casting project

好的,这就是KernelHandler类

public class KernelHandler extends ImageHandler

我找不到方法getWidth()

我知道它与继承有关,但我需要帮助,

//Heres the contructor

 public KernelHandler(String nameOfFile)
{
   super(nameOfFile);


    }

// here's the super constructor
public ImageHandler(String  nameOfFile){


     URL imageURL = getClass().getClassLoader().getResource(nameOfFile);
    try
    {
     myImage = ImageIO.read(imageURL);
    }
    catch ( IOException e )
    {
        System.out.println( "image missing" );
    }

// Here's the method were trying to use

public static int numOfRedBoxes(String nameOfImg)

    {
        KernelHandler myHand = new KernelHandler(nameOfImg);
        for(int i = 0; i < myHand.getWidth(); i++)

            for(int j = 0; j < myHand.getHeight(); j++){
                if(img.getRGB(i, j) == red){
                    numOfRedBoxes++;
               }   
            }
       }
      return numOfRedBoxes;
   }

3 个答案:

答案 0 :(得分:0)

getWidth()不应在ImageHandler中拥有私有访问权限(如果两个类都在不同的包中,则包私有访问权限)。你能检查一下吗?

简而言之,getWidth()应以publicprotected作为前缀。

答案 1 :(得分:0)

尝试将myHand的类型更改为超类的类型,它将类似于:

  
ImageHandler myHand = new KernelHandler(nameOfImg);

答案 2 :(得分:0)

ImageHandler中是否有一个名为getWidth()的方法?我已经看到这个类的一些实现没有。这可能是无法访问的另一个原因。