2012-03-01 68 views
0

我需要將3張圖片添加到我的代碼中。 目前,這3張圖片不在SRC文件夾中,但在其外 - 我正在談論關於Eclipse Project的 。將圖片添加到特定路徑的Java GUI

這裏是我的代碼:

Image myImage = new Image(null, "treasure1.jpg"); 

while (iterator.hasNext()) 
{ 

    String current = iterator.next(); // get an original room in the maze 
    Coordinate mazeDot = null; 
    if (this.m_rooms.containsKey(current)) // if the string key exists 
     { 
      mazeDot = this.m_rooms.get(current); // get the coordinate of that specific room as two Ints 
      e.gc.drawImage(myImage,mazeDot.getXCoordinate(),mazeDot.getYCoordinate()); 
     }     
} 

但我想把那張照片(treasure1.jpg)在我的項目的src文件夾。 我試過這段代碼:

Image myImage = new Image(null, "src/treasure1.jpg"); 

,但它沒有工作,但編(我把圖片在src文件夾後)。 src是小寫。

任何想法有什麼不對?

問候, 羅恩

+0

你在那裏使用了什麼樣的圖像類? java.awt.Image上沒有構造函數,就像您在代碼中顯示的一樣。 – Perception 2012-03-01 15:39:32

+0

我沒有使用類,只是圖像工具。但是,當我把文件放在「src」文件夾中時,它不能正常工作。不知道爲什麼 – ron 2012-03-01 15:58:20

回答

2

如果我理解正確的,你像現在是你的包層次結構的一部分。所以,你應該可以使用下面的代碼片斷它來訪問:

Toolkit.getDefaultToolkit().getImage(getClass().getResource(path)) 

其中路徑是無論是從包裝到圖像的相對路徑中,你的類的位置,或從根開始包的完整路徑,即:

Relative: ressources/images/treasure1.jpg 
Absolute: /org/you/ressources/images/treasure1.jpg 

或者,如果您的圖像與您的課程在同一個包中,則只需使用圖像的名稱即可。就我所知,您也可以使用ImageIO而不是Toolkit。

+1

我要寫一個類似的文章;這個解決方案要好得多,因爲處理絕對路徑名是個不好的做法(比如'src')。此外,在將應用程序打包到JAR中之後,此代碼將繼續工作。 – phineas 2012-03-01 15:46:25

+0

我會告訴你真相,夥計們,我需要把我的任務交給演講者來獲得我的成績,但他只與SRC合作...... :) – ron 2012-03-01 15:51:56

+0

下面是我當前文件夾的外觀http:// imageshack .us/photo/my-images/805/mycurrentfolder.gif/...... – ron 2012-03-01 15:57:01