Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:错误:在调用超类型构造函数之前无法引用此_Java_Constructor_Imageicon - Fatal编程技术网

Java:错误:在调用超类型构造函数之前无法引用此

Java:错误:在调用超类型构造函数之前无法引用此,java,constructor,imageicon,Java,Constructor,Imageicon,我正在尝试向javax.swing.ImageIcon添加一个构造函数。它应解析目录结构,以便能够像图像地图一样访问ImageIcon类 我想做的是: public class CPImageIcon extends ImageIcon { public CPImageIcon(String name) { super(this.getClass().getResource("/desktopapplication1/resources/" + name), "des

我正在尝试向
javax.swing.ImageIcon
添加一个构造函数。它应解析目录结构,以便能够像图像地图一样访问
ImageIcon

我想做的是:

public class CPImageIcon extends ImageIcon {

    public CPImageIcon(String name) {

        super(this.getClass().getResource("/desktopapplication1/resources/" + name), "description");
    }
但这导致:

警告:[选项]引导类路径未与-source 1.7一起设置
I:\DesktopApplication1\src\DesktopApplication1\CPImageIcon.java:18:错误:在调用超类型构造函数之前无法引用此
super(this.getClass().getResource(“/desktopapplication1/resources/”+name),”);

如果我试图超越其他构造函数,它会起作用。

super
构造函数必须是子类构造函数中的第一个调用。 如果ommitted,它将自动调用默认构造函数
super()

表示当前实例,在调用super之前不能使用

您可以使用以下方法(注释或未注释):

import javax.swing.*;

public class CPImageIcon extends ImageIcon {

    public CPImageIcon(String name) {
        super(CPImageIcon.class.getResource("/desktopapplication1/resources/" + name), "description");
//        super(Thread.currentThread().getContextClassLoader().getResource("/desktopapplication1/resources/" + name), "description");
    }
}

您真的需要扩展
ImageIcon
?您是否可以不直接使用工厂方法构建
ImageIcon
的实例?