相対パスを使用して画像を参照しているhtmlをJLabelに表示させようとしています。しかし、JLabelに画像を見つけさせることはできません。絶対パスを使用している場合は正常に動作します。
コマンドラインまたはeclipseからプログラムを実行し、ダイアログを追加して、現在の作業ディレクトリがどこにあるかを表示してみましたが、役に立ちました。そのため、現在のディレクトリで画像が検索されていないという結論に達しました。これにより、要点がわかります。画像はどこで検索されますか?
これが私がしていることを示すテストコードです:
import javax.swing.*;
public class HTMLLabel extends JFrame {
public HTMLLabel() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JOptionPane.showMessageDialog( this,
System.getProperty("user.dir"));
String html = "<html>\n" +
" <body>\n" +
" <div style=\"text-align: center;\">\n" +
" <img src=\"file://s.png\">\n"+
" </div>\n"+
" </body>\n"+
"</html>";
JLabel label = new JLabel(html);
add(label);
pack();
setVisible(true);
}
public static void main(String[] args) {
new HTMLLabel();
}
}