2012-02-02 20 views
0

JTextPaneにローカルイメージをロードしようとしていて、プログラムが壊れたイメージアイコンを表示しています。これは、HTMLコードである:HTMLローカルイメージを使用したJTextPaneはロードされません


    &ltimg src="file:\\C:\farmostrich.gif" width=77 height=777"/>

プログラムはJTextPaneのインスタンス化したHTMLファイルの他の部分(例えば、テキスト、ハイパーリンク)、ない画像を表示します。

textPane = new JTextPane(); 
textPane.setContentType("text/html"); 
textPane.setText(htmlString); 

いずれかの提案がありますか?すべてありがとう!

+0

そのHTMLスニペットは無効です(どのバージョンのHTMLでも)。 –

答えて

2

は、私はこのような操作を行います。

textPane = new JTextPane(); 
textPane.setContentType("text/html"); 
String htmlString = "<html><body width=\"595\" height=\"842\"> 
    <div align=\"left\"><img src=\"" + this.getClass().getClassLoader() 
    .getResource("images/logo_html.png").toString()+"\" /></div>....."; 
textPane.setText(htmlString); 
1
  1. はHTMLとして解釈されsrcフォルダに画像を追加し、スニペットは<html>
  2. 示したコードの抜粋で開始する必要があり、有効なHTMLではありません末尾には"です。クローズ/は、HTML 3.2(Javaが理解していると主張する唯一のバージョン)でも無効です。
  3. パスが間違っています。 C:\farmostrich.gifFile(JavaのStringC:\\farmostrich.gifは)file:/C:/farmostrich.gif

のURIに変換プログラミングは魔法ではないことに注意してください。あなたがゴミを入れたら、ゴミを出すでしょう。

+0

1.これは抜粋です。htmlファイル全体ではなく、明らかにhtml、bodyで始まります。 2.実際のコードには、「試した/試した」と>がありませんでした。 3. htmlは、少なくともファイルから読み込んだ場合、エスケープ文字は必要ありません。 、ごみのコメントアウト –

+1

もしあなたが[SSCCE](http://sscce.org/)を投稿するのなら、私には明らかでしょう。ほとんどのプログラマーは人生を救うためにHTMLを書くことができないので注意してください。私はあなたがそれが可能であると推測するつもりはありません。..特にHTMLスニペットの一行が投稿されたとき、2つの点で間違っています;) –

関連する問題