2015-05-09 51 views
0

這顯示了我通過eclipse啓動時的圖標,但是當我將它導出到一個Runnable Jar時它顯示了默認的Java圖標,我不想使用該資源因爲它甚至無法在IDE中工作。你會如何改變你的程序圖標而不是默認的java圖標

public static void main(String args[]) { 
    Game component = new Game(); 
    ImageIcon img = new ImageIcon("res/game.png"); 

    JFrame frame = new JFrame(); 
    frame.add(component); 
    frame.setTitle(NAME); 
    frame.setIconImage(img.getImage()); 
    frame.setResizable(false); 
    frame.setLocationRelativeTo(null); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.pack(); 
    frame.setVisible(true); 

    component.start(); 
} 
+0

看看這個:http://stackoverflow.com/questions/17815033/how-to-change-java-icon-in-a-jframe –

+0

正如我所說我不想使用我想要的資源方法使用這種方法,因爲它是更好的方式 – user3029375

+0

然後,試試這個:http://stackoverflow.com/questions/1614772/how-to-change-jframe-icon –

回答

0

試試這個下面的代碼到iconImage設置在框架:

frame.setIconImage(new ImageIcon("res/game.png").getImage()); 

即使在這種oracle doc你可以找到同樣的方法。

編輯: 您是否試過這段代碼。這可能有幫助:

frame.setIconImage(new ImageIO.read(new File("res/game.png"))); 

看看這個explation了。

+0

是啊,我試過了,沒有工作 – user3029375

+0

哦,我看......奇怪的是它爲我工作雖然:d –

+0

frame.setIconImage(新的ImageIcon(「RES /遊戲。 PNG「)的getImage())。 作品在IDE中,但一旦我出口和貫穿的.jar,不工作 – user3029375

1

請使用如下代碼

Image image = ImageIO.read(getClass().getResourceAsStream("/res/icon.png")); 
setIconImage(new ImageIcon(image).getImage()); 

,並把你的圖標文件夾srcres文件夾。但是當你執行jar文件時它會顯示框架的圖標。爲我工作得很好。

+0

代碼看起來像 \t \t嘗試{ \t \t \t Image image = ImageIO.read(Game.class.getResourceAsStream(「/ res/icon.png」)); \t \t \t frame.setIconImage(new ImageIcon(image).getImage()); \t \t} catch(IOException e){ \t \t \t e.printStackTrace(); \t \t} 但我得到以下錯誤線程 「主」 java.lang.IllegalArgumentException異常 例外:輸入== NULL! (Game Source) \t at javax.imageio.ImageIO.readjava:51) – user3029375

+0

問題是我正在使用的路徑 – user3029375

0

問題是,我使用錯誤的運行作爲文件,一個愚蠢的錯誤,但多數民衆贊成我沒有我的工作空間乾淨。

我想感謝所有試圖提供幫助的人。

相關問題