好的,这就是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;
}
答案 0 :(得分:0)
getWidth()
不应在ImageHandler
中拥有私有访问权限(如果两个类都在不同的包中,则包私有访问权限)。你能检查一下吗?
简而言之,getWidth()
应以public
或protected
作为前缀。
答案 1 :(得分:0)
尝试将myHand的类型更改为超类的类型,它将类似于:
ImageHandler myHand = new KernelHandler(nameOfImg);
答案 2 :(得分:0)
ImageHandler中是否有一个名为getWidth()的方法?我已经看到这个类的一些实现没有。这可能是无法访问的另一个原因。