2014-06-26 34 views
0

我试图通过的Java奇怪的错误时,试图加载图像

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(); 
    } 
} 

加载使用

static Image terrain = null; 

随后的图像,但我得到以下错误

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

我有不知道为什么它做这个任何帮助将是一个惊喜

+0

你可以请张贴更多的来源? – BoppreH

+0

是的错编辑它 – Mark9135

+1

更改'getClass()'到'YourClassNameHere.class' – DirkyJerky

回答

2

你可能调用

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

一个静态方法里面。由于getClass()引用类的实例,所以不能在静态方法内调用getClass()。在这种情况下,你应该打电话:

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