こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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上)で表示するにはどうすれば良いでしょうか?
またはどこが間違っているでしょうか?
バカでスミマセンお願いします。

投稿日時 - 2016-11-21 21:51:25

QNo.9258619

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

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

投稿日時 - 2016-11-21 22:08:56

あなたにオススメの質問