0

jeditorpane で html ファイルを表示しようとしています。

ファイルはプロジェクト フォルダに保存され、プログラムによって生成されます。FredReceipt.htmlという領収書です

URLにjeditorpaneを使用する方法は理解していますが、チュートリアルなどでファイルをロードする方法を理解できませんでした.Webから読んでいます。相対 URL を使用してファイルをロードしたい。これは私が現時点で持っているものです。(明らかに) 機能していません。IOException をキャッチしています。

public void showReceipt() {
    receiptPanel = new JPanel();
    receiptPanel.setVisible(true);
    receiptPanel.setBackground(new Color(250,251,253)); 
    String url = "FredReceipt.html";
    try {
      JEditorPane htmlPane = new JEditorPane("FredReceipt.html");
      htmlPane.setEditable(false);
      receiptPanel.add(new JScrollPane(htmlPane));
    } catch(IOException ioe) {
      System.err.println("Error displaying " + url);
    }

}

また、次のように「setPage()」メソッドを使用してみました。

public void showReceipt() {
    receiptPanel = new JPanel();
    receiptPanel.setVisible(true);
    receiptPanel.setBackground(new Color(250,251,253)); 
    try {
      JEditorPane htmlPane = new JEditorPane();
      htmlPane.setPage(new URL("FredReceipt.html"));
      htmlPane.setEditable(false);
      receiptPanel.add(new JScrollPane(htmlPane));
    } catch(IOException ioe) {
      System.err.println("Error displaying file");
    }

}

FredReceipt.html は明らかに URL ではありませんが、URL とほとんど同じようにファイルを読み取ることができると読みましたが、正しい方法を見つけることができませんでした。

私の質問がばかげていないことを願っています、どうもありがとう!

4

2 に答える 2

4

このファイルは、アプリケーションがインストールされているディレクトリと同じディレクトリに書き込まないでください。このデータはアプリケーションによって生成されるため、一時的なものと思われます。その場合、 を一時ファイルjava.io.tmpdirとして、終了時に削除するように要求することをお勧めします。このようなもの:

File tempDir = new File(System.getProperty("java.io.tempdir"));
File receiptFile = File.createTempFile("FredReceipt", "html", tempDir);
receiptFile.deleteOnExit();
// fill the file with mark-up
// ...
// end filling
editorPane.setPage(receiptFile.toURI().toURL());
于 2012-04-30T00:42:36.153 に答える
2

JEdi​​torPaneは、さまざまなファイル形式から派生したテキストを表示できる、一種の凝ったテキスト領域です。

次のリンクが役立つ場合があります。
JEdi​​torPaneのHTML

于 2012-04-30T04:23:25.200 に答える