2014-07-24 2 views
0

어떤 HTML을 설정하지 않습니다, 그러나 이것은 내가 데 문제입니다 :JEditorPane로 내가 검색하고 .. 아직 내가 무엇을 경험하는 사람을 보지 못했다

나는 HTML의 작은 비트 등을 설정하려고 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

첫 번째, 두 가지를 조심 ... 실제로 렌더링 된 특정 요소를 확인 도운 이미지에 alt 태그를 추가, 당신은 예 '수상 t 컴파일, 두 번째, 당신은 HTML 형식이 잘못되었습니다, 접두사' '접미사가 붙어 있고 '' – MadProgrammer

+0

HTML'table'에는 행이나 셀이 없습니다 ... – MadProgrammer

+0

@MadProgrammer 실행했기 때문에 컴파일됩니다. 테이블을 제거하고 이미지 만있는 경우에도 HTML은 설정되지 않습니다. 나는 또한 원래 게시물에서 내가 문자열을 시작하고 끝까지 과을 추가하려고 시도했음을 언급했다. 이것은 을 포장하지 않은 등 (내 원래 게시물을 고쳤다. 이 마지막 단락에 표시되지 않은 이유 코드입니다. – Seephor

답변

3

조금 테스트 후 나는

  • html로 잘 그것을 받아 들일 것이다 JEditorPane 전에 형성되어야한다 ... 발견, 사실, 잘못된 제거, 그 자체 검증의 일부를 수행하는 것 태그 ... 재미있는
  • 내가 HTTP 헤더에 적절한 헤더가없는 경우 일부 사이트가 적극적으로 이미지의 다운로드를 차단할 수 있습니다
  • 테이블에 테이블 행 및 셀 <tr><td>...</td></tr>을 포함했다,이 이미지는 것을 의미 당신의 예제에서 반복적으로 다운로드하지 못했습니다. JEditorPane 같은 HTML이 브라우저와 같은 이미지 (예 : Chrome)를로드하더라도
  • HTML에 콘텐츠를 추가하여 내가 생각하는 것을 렌더링하는지 확인하는 데 도움이되는 경우가 있습니다. 예를 들어, 1과에 표 테두리는

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

감사합니다. 모든 테이블 행 태그를 html로 설정하면 이미지가 다운로드되지 않습니다. 당신은 "HTTP 머리글에 적절한 헤더가 있으면 일부 사이트에서 이미지 다운로드를 적극적으로 차단할 수 있습니다."라고 설명 했습니까? – Seephor

+0

HTTP 요청은 'user-agent' 헤더를 요청의 일부로 전달할 수도 있습니다. 일부 사이트는 적절한 'user-agent'값을 가지고 있지 않은 요청을 적극적으로 차단합니다. – MadProgrammer

+1

[예] (http://stackoverflow.com/questions/5792855/httpclient-cookies-and-jeditorpane) JEditorPane에 대한 페이지 요청 – MadProgrammer