尝试加载图像时出现Java wierd错误

时间:2014-06-26 01:49:18

标签: java

我正在尝试使用

加载图片
static Image terrain = null;

其次是

public static void main(String[] args) {
    Arcanus arc = new Arcanus();  
    try {
        terrain = ImageIO.read(getClass().getResource("Arcanus Terrain Tileset.png"));            
        Font customFont = Font.createFont(Font.TRUETYPE_FONT, new File("Golden-Sun.ttf")).deriveFont(12f);
        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
        ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, new File("Golden-Sun.ttf")));
        arc.setFont(customFont);
    } catch (IOException e) {
        e.printStackTrace();
    } catch (FontFormatException e) {
        e.printStackTrace();
    }
}

但是我收到以下错误

Uncompilable source code - non-static method getClass() cannot be referenced from a static context

我不知道为什么它这样做会有任何帮助将是apreciated

1 个答案:

答案 0 :(得分:2)

你可能正在打电话

terrain = ImageIO.read(getClass().getResource("Arcanus Terrain Tileset.png"));

在静态方法中。您不能在静态方法中调用getClass(),因为getClass()指的是类的实例。在这种情况下,您应该致电:

terrain = ImageIO.read(MyClass.class.getResource("Arcanus Terrain Tileset.png"));