2017-06-18 3 views
0

私はJavaを使って基本的なテキストアドベンチャーゲームを作っています。画像を入れることに決めました。 私はプログラム上に私のイメージをロードするために使用するコードはこれです:私は日食すべてでプログラムを実行すると画像が瓶に表示されない

imagePanel = new JPanel(); 
imagePanel.setBounds(50, 50, 400, 260); 
imagePanel.setBackground(Color.BLACK); 
con.add(imagePanel); 

imageLabel = new JLabel(); 

image = new ImageIcon(".//res//towngate.jpg"); 

imageLabel.setIcon(image); 
imagePanel.add(imageLabel); 

することは完全に正常に動作しますが、私は、画像の瓶なしとしてエクスポートしたときに表示されます。 誰かが私がこれを解決するのを助けることができたら、私はそれを大いに感謝するでしょう。ありがとう!

+0

jarファイル内のオブジェクトはファイルではないため、ImageIconコンストラクタのファイル名形式を使用してファイルにアクセスすることはできません。次の例では、相対パスまたは絶対パスを使用しないでください。 [この質問](https://stackoverflow.com/q/8870932/2670892)のようなものを参照してください –

答えて

1

アイコンがjarファイルに含まれていることを確認して、ランタイムでクラスローダーで検索してみてください。

public ImageIcon loadIcon(String iconName) throws IOException { 
    ClassLoader loader = this.getClass().getClassLoader(); 
    BufferedImage icon = 
    ImageIO.read(loader.getResourceAsStream(iconName)); 
    return new ImageIcon(icon); 
} 
+0

ありがとうトン!今は素晴らしい作品です。 – Zetotke

関連する問題