• 締切済み

eclipse 相対パスによる画像表示

java swing eclipseにて絶対パスによる画像表示はできるのですが「相対パスによる」画像表示ができません。カレントディレクトリはeclipse/HelloWorld/src/testです。 testはパッケージで 画像自体はgifファイルでtestパッケージの中に入っていて画像を呼び出すファイル(part18.java)もtestパッケージに入っています。 testパッケージに入っている「part18」のソースです。(絶対パスでの画像表示はできます。) package test; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import java.awt.Color; import java.awt.Font; public class part18 { public static void main(String[] args) { System.out.println("やっはろー"); // ウィンドウフレームを作成、表示 JFrame jf = new JFrame(); jf.setBounds(20,50,800 ,450); jf.setVisible( true ); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 親パネルを作成し、フレームに貼り付け JPanel jp = new JPanel(); jp.setBackground( Color.BLACK ); jf.add( jp ); // ラベルを作成し、親パネルに貼り付け JLabel jl = new JLabel("魔王が世界を滅ぼそうとしています"); Font f = new Font(Font.MONOSPACED, Font.ITALIC, 40); jl.setFont( f ); jl.setForeground( new Color(255,128,0) ); jp.add( jl ); jf.setVisible( true ); //パネルを作成し、親パネルに貼り付け JPanel jpChild = new JPanel(); jpChild.setBackground( Color.RED ); jp.add( jpChild ); // ラベルを作成し、子パネルに貼り付け JLabel jlChild = new JLabel("トンヌラ Lv99 HP999/999"); jlChild.setFont( f ); jlChild.setForeground( Color.WHITE); jpChild.add( jlChild ); jf.setVisible( true ); // 画像付きラベルを作成し、親パネルに貼り付け JLabel jlImage = new JLabel( new javax.swing.ImageIcon("/Users/○○/Desktop/mine/sozai/img15_1.gif") ); jlImage.setSize( 640 , 481 ); jp.add( jlImage ); jlImage.setVisible( true ); } } 画像表示を相対パス(eclipse上)で表示するにはどうすれば良いでしょうか? またはどこが間違っているでしょうか? バカでスミマセンお願いします。

みんなの回答

  • f272
  • ベストアンサー率46% (8467/18126)
回答No.1

クラスファイルがeclipse/HelloWorld/src/testに入っていても,そこからの相対パスを書いてはいけません。プロジェクトフォルダからの相対パスで指定してください。

関連するQ&A