2013-08-02 3 views
0

JTextPane을 사용하여 자바 스윙을 사용하여 텍스트 편집기를 만들었지 만 StyledEditorKit class에는 배경색을 설정하는 방법이 없습니다.JTextPane에서 배경색을 설정하고 HTML 코드를 가져 오는 방법은 무엇입니까?

SimpleAttributeSet aSet = new SimpleAttributeSet(); 
StyleConstants.setBackground(aSet, color); 
StyledDocument doc = textPane.getStyledDocument(); 
doc.setCharacterAttributes(textPane.getSelectionStart(),textPane.getSelectionEnd()-textPane.getSelectionStart(), aSet, false); 

그것은, JTextPane에 을 배경 색상을 표시 할 수 있지만하지 않음으로써 textPane.GetText() 는 HTML 코드를 가져옵니다 :

그럼 난 배경 색상을 설정하려면이 아이디어를 사용합니다.

class bgAction extends StyledEditorKit.StyledTextAction { 

    public bgAction(String arg0) { 
     super(arg0); 
     // TODO Auto-generated constructor stub 
    } 

    @Override 
    public void actionPerformed(ActionEvent arg0) { 
     JEditorPane editor = getEditor(arg0); 
     try { 

      String selectedText = editor.getSelectedText(); 

      HTMLDocument document = (HTMLDocument) this.getStyledDocument(editor); 

      System.out.println(document == TextView.this.document); 
      document.remove(editor.getSelectionStart(),selectedText.length()); 

      HTMLEditorKit et = (HTMLEditorKit) this.getStyledEditorKit(editor); 

      et.insertHTML(document, editor.getSelectionStart(), ""+ selectedText + "", 0, 0, HTML.Tag.SPAN); 

     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } 
    } 

} 

그러나 insertHTML() 방법은 작동하지 않습니다

그런 다음 나는 또한 아이디어를 발견했다. 내가 잘못한 곳입니까?

JTextPane에 배경색을 설정하고 HTML 코드를 가져 오는 방법이 있습니까?

답변

-1

사용이 코드는() textPane.getText에 의해 배경 JTextPane의 색상,하지만 캔트를 표시 HTML 코드를 얻을 수

     JTextPane p=new JTextPane(); 
     p.setContentType("text/html"); 
     p.setStyledDocument(new HTMLDocument()); 

     frame.getContentPane().add(p); 
     p.setText("<html><p>This is some text in a paragraph.</p></html>"); 
     System.out.println(p.getText()); 
+0

이 코드는 내 첫 번째 코드와 동일합니다 니펫을. – oliver

+0

USe textPane.getDocument(). getText() 종류의 메서드입니다. –

+0

textPane.getDocument(). getText()는 텍스트 만 가져올 수 있지만 HTML 코드를 가져오고 textPane.getText()를 사용할 수 있습니다. – oliver

관련 문제