2014-07-24 71 views
0

我已經搜索並沒有看到任何人遇到我什麼..還沒有任何HTML,但是這是我遇到的問題:我想設置HTML的一個小一點的JEditorPane中不設置

我的JEditorPane的文本。 下面是代碼:

JEditorPane htmlPane = new JEditorPane(); 
String imageString = "<img src=\"http://tfwiki.net/mediawiki/images2/thumb/3/37/Optimusg1.jpg/350px-Optimusg1.jpg\"/>"; 
String description = "<table width=300 border=0 cellspacing=0></table>" + imageString + "</table>"; 
htmlPane.setContentType("text/html"); 
htmlPane.setText(description); 

,但我打電話的setText之後,我的編輯窗格中的內容是:增加<html></html>我的字符串的開頭和結尾的

<html> 
    <head> 

    </head> 
    <body> 
    </body> 
</html> 

我曾嘗試變化,但沒有運氣。任何人都知道我失蹤或做錯了什麼?

我正在使用Java 1.7.0_55 32位。

+0

謹防兩件事情,第一,你贏了例如」 t編譯,其次,你的HTML格式不正確,它應該加上''前綴'並且後綴爲'' – MadProgrammer

+0

更不用說您的HTML表格沒有行或單元格了...... – MadProgrammer

+0

@MadProgrammer它編譯是因爲我運行了它。即使我刪除了表格並只有圖像,HTML仍然沒有設置。我也在原帖中提到,我曾嘗試在我的字符串的開頭和結尾添加和,這應該暗示我已嘗試等(修復了我原來的帖子,我沒有在「」中包裝代碼這就是爲什麼它沒有在最後一段顯示。 – Seephor

回答

3

一個小的測試後,我發現......

  • HTML是否已到JEditorPane之前很好地形成將接受它,而事實上,它似乎做一些它自己的驗證,刪除無效標籤......有趣的東西
  • 我必須包括錶行和單元格<tr><td>...</td></tr>到表
  • 某些網站會主動阻止圖像的下載,如果HTTP頭不具備相應的頭文件,這意味着圖像在您的示例中,您曾多次在下載失敗,儘管相同的HTML會在瀏覽器中加載圖像(如Chrome)
  • 向HTML添加額外內容有助於確保它呈現您的想法,例如,我只需添加一些文本,設置表格邊框到1alt標籤添加到圖像,這有助於確認這裏居然被渲染某些元素...

Editor

import java.awt.BorderLayout; 
import java.awt.EventQueue; 
import javax.swing.JEditorPane; 
import javax.swing.JFrame; 
import javax.swing.JScrollPane; 
import javax.swing.UIManager; 
import javax.swing.UnsupportedLookAndFeelException; 

public class TestEditorPane { 

    public static void main(String[] args) { 
     new TestEditorPane(); 
    } 

    public TestEditorPane() { 
     EventQueue.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       try { 
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
       } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) { 
       } 

       JEditorPane htmlPane = new JEditorPane(); 
       String description = "<html><body>Hello<table border=1><tr><td><img alt='Bad' src='http://fc07.deviantart.net/fs70/i/2012/084/c/0/angry_wet_ponies_are_angry____by_tabby444-d4tyfsc.png'/></tr></td></table></body></html>"; 
       htmlPane.setContentType("text/html"); 
       htmlPane.setText(description); 
       System.out.println(htmlPane.getText()); 

       JFrame frame = new JFrame("Testing"); 
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
       frame.setLayout(new BorderLayout()); 
       frame.add(new JScrollPane(htmlPane)); 
       frame.pack(); 
       frame.setLocationRelativeTo(null); 
       frame.setVisible(true); 
      } 
     }); 
    } 

} 
+0

謝謝。將所有表格行標記設置爲正確,但圖像不會下載。你提到「如果HTTP標頭有適當的標題,有些網站可能會主動阻止圖像的下載」,你能解釋一下嗎? – Seephor

+0

HTTP請求也可以攜帶'user-agent'頭部作爲請求的一部分。一些網站主動阻止請求不帶有適當的'用戶代理'值 – MadProgrammer

+1

作爲[示例](http://stackoverflow.com/questions/5792855/httpclient-cookies-and-jeditorpane)用於控制頁面請求「JEditorPane」 – MadProgrammer