1

ご挨拶!

を使用してJavaでHTMLを表示しようとしていますJEditorPane。しかし、私は問題に遭遇しました:それは画像を表示しません。

シンプルなJFrameフォームがJButtonありJEditorPaneます。ボタンには次のクリックハンドラがあります。

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) 
{
    String s = jEditorPane1.getText();

    if (jEditorPane1.getContentType() == "text/html")
        jEditorPane1.setContentType("text/plain"); else
            jEditorPane1.setContentType("text/html");

    jEditorPane1.setText(s);
}

これにより、プレーンテキストがhtmlに「変換」され、クリックすると元に戻ります。そして、これは単純なhtmlに対して完全に機能します。しかし、いくつかの画像を表示しようとすると(.jar実行中のディレクトリ内に画像を表示すると)画像が表示されimage not foundます。の中に画像を入れても同じことが起こり.jarます。

したがって、問題は、これをどのように修正できるかということです。

そしてもう1つ:自分の(または新しいもの)内を含むファイルディレクトリを含むいくつかのHTMLを配置し、それら.jarがそこからロードされていることを表示できますか?もしそうなら、これはどのように行うことができますか?

4

1 に答える 1

1

最初の質問について:HTMLテキストをURLからロードするように要求せずに、エディターペインに直接指定したため、相対URLを解決する方法がわかりません。

したがって、2つの解決策があります。

  1. 画像に絶対URLを使用する
  2. JEdi​​torPaneに、リソースのロードに使用する必要のあるベースURLを通知します。

2番目の解決策では、エディターペインで使用されるHTMLDocumentインスタンスを取得し、setBase()メソッドを呼び出す必要があります。

2番目の質問に関しては、もちろんHTMLと画像をjarファイルに配置し、Class.getResource()を呼び出してこれらのHTMLファイルの1つのURLを取得し、エディターペインにURLを指定することができます。HTMLとロードされたHTMLファイルのURLを基準にして画像を表示します。

于 2011-02-03T14:31:23.427 に答える