2011-02-03 49 views
1

問候!用Java顯示HTML

我一直在嘗試使用JEditorPane來顯示一些使用Java的HTML。但是我遇到了一個問題:它不顯示任何圖像。

我有一個簡單的JFrame表格,其上有JButtonJEditorPane。按鈕有這個點擊處理程序:

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中時也會發生同樣的情況。

所以,問題是:這是如何解決的?

還有一個問題需要解決:我可以在文件目錄中放置一些HTML文件,包括我的(或新文件).jar,然後顯示它們是從那一個文件加載的嗎?如果是這樣,可以怎麼做?

回答

1

關於你的第一個問題:既然你直接把HTML文本給編輯器窗格,而不要求從URL加載它,它不知道如何解析相對URL。

您這樣有兩個解決方案:

  1. 使用絕對URL爲你的形象
  2. 告訴JEditorPane中必須使用加載資源的基本URL。

對於第二個解決方案,您只需獲取編輯器窗格使用的HTMLDocument實例,並調用setBase()方法。

關於你提到的第二個問題,你當然可以代替HTML和圖像的jar文件,調用Class.getResource()來獲取這些HTML文件之一的URL,並把它的URL給編輯窗格:它會加載HTML並相對於加載的HTML文件的URL顯示圖像。

+0

謝謝!這一個是有幫助的。但第二個問題是關於運行時文件添加。可能嗎?我的意思是可以存儲HTML文件和所有正在運行的`.jar`文件以及如何完成這些? – shybovycha 2011-02-03 15:10:53