2017-04-11 100 views
0

這是將ImageIcon添加到JLabel的正確方法嗎?當我調用第二種方法時,它似乎沒有工作。 addCarIcon()是什麼類型?將ImageIcon添加到JLabel?

//return JLabel that is null 
     JLabel findEmptySpace() 
     { 

      return parkingSpace[emptySpaceNo()]; 
     } 

     //set icon JLabel 
     void addCarIcon() 
     { 
      ImageIcon carIcon = new ImageIcon("car.png"); 
      findEmptySpace().setIcon(carIcon); 
     } 
+0

JLabel不爲null,它只包含沒有ImageIcon。它被返回,因此可以在addCarIcon()中將ImageIcon設置爲它。停車空間JLabel已經添加到JPanel中並且可見。 – Nebula

回答

0
//return JLabel that is null 
JLabel findEmptySpace() 
{ 
    return parkingSpace[emptySpaceNo()]; 
} 

//set icon JLabel 
void addCarIcon() 
{ 
    // ImageIcon carIcon = new ImageIcon("car.png"); 
    ImageIcon carIcon = new ImageIcon(getClass().getResource("car.png"), null); 
    findEmptySpace().setIcon(carIcon); 
} 

我不reccomend使用的ImageIcon(字符串文件名)建設的問題情況下,根據文件pakaging。當你從IDE運行它時它可以工作,而當你從可運行的jar中運行時它不工作。

附:前段時間,我創建了IconManager utils使用ico文件而不是一組png文件。你可以測試它,也許它可能對你有用。 (這是GitHub的鏈接:https://github.com/oleg-cherednik/IconManager