Java 超类的构造函数未定义

Java 超类的构造函数未定义,java,Java,我有我的主要工作 package lab8_9; import se.lth.cs.ptdc.images.ImageFilter; import se.lth.cs.ptdc.images.ImageGUI; public class ImageProcessor { public static void main(String[] args) { ImageFilter[] filters = new ImageFilter[2]; filters[

我有我的主要工作

package lab8_9;
import se.lth.cs.ptdc.images.ImageFilter;
import se.lth.cs.ptdc.images.ImageGUI;

public class ImageProcessor {
    public static void main(String[] args) {
        ImageFilter[] filters = new ImageFilter[2];
        filters[0] = new IdentityFilter("Identity Filter");
        filters[1] = new BlueFilter("Blue Filter");
        new ImageGUI(filters);
    }
}
然后我有我的课

package lab8_9;
import java.awt.Color;
import se.lth.cs.ptdc.images.ImageFilter;

public class IdentityFilter extends ImageFilter {
    public IdentityFilter(String name) {
        super(name);
    }

    public Color[][] apply(Color[][] inPixels, double paramValue) {
        int height = inPixels.length;
        int width = inPixels[0].length;
        Color[][] outPixels = new Color[height][width];
        for (int i = 0; i < height; i++) {
            for (int j = 0; j < width; j++) {
                Color pixel = inPixels[i][j];           
                outPixels[i][j] = new Color(pixel.getRed(), 
                                            pixel.getGreen(),
                                            pixel.getBlue());
            }
        }
        return outPixels;
    }
}
“类型不匹配:无法从BlueFilter转换为ImageFilter”

一个用于我试图添加的类,在构造函数中

public BlueFilter(String name) {
        super(name);
    }
“构造函数ImageFilter(字符串)未定义”

我在这里迷路了,有什么问题吗?我几乎复制了IdentityFilter,它工作得很好,但不起作用。非常感谢您的帮助。我是初学者,所以请继续解释我做错了什么

这里是超类,如果有人需要它,我还没有写过它

package se.lth.cs.ptdc.images;
    import java.awt.Color;

    public abstract class ImageFilter {
        private String name;

        protected ImageFilter(String name) {
            this.name = name;
        }

        public String getName() {
            return name;
        }


        public abstract Color[][] apply(Color[][] inPixels, double paramValue);

        protected short[][] computeIntensity(Color[][] pixels) {
            int height = pixels.length;
            int width = pixels[0].length;
            short[][] intensity = new short[height][width];
            for (int i = 0; i < height; i++) {
                for (int j = 0; j < width; j++) {
                    Color c = pixels[i][j];
                    intensity[i][j] = (short) ((c.getRed() + c.getGreen() + c
                            .getBlue()) / 3);
                }
            }
            return intensity;
        }


        protected short convolve(short[][] p, int i, int j, short[][] kernel,
                int weight) {
            short sum = 0;
            for (int ii = -1; ii <= 1; ii++) {
                for (int jj = -1; jj <= 1; jj++) {
                    sum += p[i + ii][j + jj] * kernel[ii + 1][jj + 1];
                }
            }
            return (short) Math.round((double) sum / weight);
        }
    }
包se.lth.cs.ptdc.images;
导入java.awt.Color;
公共抽象类ImageFilter{
私有字符串名称;
受保护的ImageFilter(字符串名称){
this.name=名称;
}
公共字符串getName(){
返回名称;
}
公共抽象颜色[][]应用(颜色[][]像素,双参数值);
受保护的短[][]计算强度(颜色[][]像素){
整数高度=像素数。长度;
整数宽度=像素[0]。长度;
短[]强度=新短[高度][宽度];
对于(int i=0;i对于(intii=-1;ii您正在导入
java.awt.image.ImageFilter;
而不是
se.lth.cs.ptdc.images.ImageFilter;
您正在导入
java.awt.image.ImageFilter;
而不是
se.lth.cs.ptdc.images.ImageFilter;
噢,这是一个非常快速的答案:),谢谢。现在我的程序运行得很好!哇,这是一个非常快速的回答:),谢谢。现在我的程序运行得很好!
public BlueFilter(String name) {
        super(name);
    }
package se.lth.cs.ptdc.images;
    import java.awt.Color;

    public abstract class ImageFilter {
        private String name;

        protected ImageFilter(String name) {
            this.name = name;
        }

        public String getName() {
            return name;
        }


        public abstract Color[][] apply(Color[][] inPixels, double paramValue);

        protected short[][] computeIntensity(Color[][] pixels) {
            int height = pixels.length;
            int width = pixels[0].length;
            short[][] intensity = new short[height][width];
            for (int i = 0; i < height; i++) {
                for (int j = 0; j < width; j++) {
                    Color c = pixels[i][j];
                    intensity[i][j] = (short) ((c.getRed() + c.getGreen() + c
                            .getBlue()) / 3);
                }
            }
            return intensity;
        }


        protected short convolve(short[][] p, int i, int j, short[][] kernel,
                int weight) {
            short sum = 0;
            for (int ii = -1; ii <= 1; ii++) {
                for (int jj = -1; jj <= 1; jj++) {
                    sum += p[i + ii][j + jj] * kernel[ii + 1][jj + 1];
                }
            }
            return (short) Math.round((double) sum / weight);
        }
    }