2013-04-13 134 views
2

我嘗試了很多解決方案,而且我似乎無法找到與我的代碼問題。我檢查了路徑名,文件權限,並嘗試了幾個不同的文件名稱的圖像。圖像沒有顯示出來。getImage方法顯示空白

private Character player; 
private Image image, sprite; 
private URL base; 
private Graphics second; 

@Override 
public void init() { 
    setSize(500,500); 
    setBackground(Color.white); 
    setFocusable(true); 
    addKeyListener(this); 
    Frame frame = (Frame)this.getParent().getParent(); 
    frame.setTitle("Joules"); 
    try { 
     base = getDocumentBase(); 
     sprite = getImage(base,"kips.PNG"); 
    } catch (Exception e) { 
    } 

    //  sprite = getImage(base,"kips.PNG"); 
} 

@Override 
public void start() { 
    player = new Character(); 

    Thread thread = new Thread(this); 

    thread.start(); 
} 

    @Override 
public void update(Graphics g) { 
    if (image == null) { 
     image = createImage(this.getWidth(), this.getHeight()); 
     second = image.getGraphics(); 
    } 

    second.setColor(getBackground()); 
    second.fillRect(0, 0, getWidth(), getHeight()); 
    second.setColor(getForeground()); 
    paint(second); 

    g.drawImage(image, 0, 0, this); 
} 

@Override 
public void paint(Graphics g) { 
     g.drawImage(sprite,player.getCenterX(),player.getCenterY(),this); 
} 

@Override 
public void run() { 
    while (true) { 
     repaint(); 
     try { 
      Thread.sleep(34); 
     } catch (InterruptedException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

請幫助...

+0

「getImage」方法在哪裏? (它是什麼聲明類?) – acdcjunior

+1

@acdcjunior請參閱['Applet.getImage(URL)'](http://docs.oracle.com/javase/7/docs/api/java/applet/Applet.html#getImage% 28java.net.URL%29)以及緊接着的變量。 –

+0

我也嘗試通過在計算機中將url設置爲圖像名稱來訪問該文件。我確實收到了畸形的url異常。我仍然懷疑這條路不知何故,但我迷路了。 – user1610810

回答

0

我只是有這個問題,並發現getDocumentBase()返回一個巨大的路徑是當前小程序的基礎上,而不是項目。

取而代之,我使用getCodeBase()返回「../projectName/bin/」,因此在代碼中的相對路徑中返回一個文件夾。

base = getCodeBase();
sprite = getImage(base,"../kips.PNG");