2012-02-13 4 views
1

다음

• 설정 : 글꼴, 정렬 (왼쪽, 중앙, 오른쪽 정렬)
• 문서에 텍스트를 append하는 효율적인 방법입니다.
텍스트를 선택하거나 편집 할 필요가 없습니다. 텍스트의 그림/렌더링을 재정의 할 수 있어야합니다.내가 할 수있는 클래스를 만들려고했습니다

나는 JTextComponent 클래스가 어려운있는 JDK 이것이 내가 지금까지 가지고있는 한, 효율적으로 사용하는 것을 발견하지만 내가 달성하기 위해 노력하고있어 거리가 멀다 :

public class Paragraph extends JTextPane{ 

    public Paragraph(){ 
     this.setFont(Fonts.PARAGRAPH); 
     this.setOpaque(false); 
    } 

    // ridiculously slow 
    public void append(String s) { 
    SimpleAttributeSet def = new SimpleAttributeSet(); 
    StyleConstants.setForeground(def, Colors.PARAGRAPH); 
    Document d = getDocument(); 
    try { 
     d.insertString(d.getLength(), s, def); 
    } catch (BadLocationException ble) { 
    } 
} 
} 



질문 : 휠을 다시 발명하는 시간을 절약 할 수있는 라이브러리가 있습니까?
그렇지 않다면 어떻게 JDK 구현을 확장 할 수 있습니까? 감사합니다

+0

_ 바퀴를 다시 발명 할 때 시간을 절약 할 수 있습니까? _ 단순 :하지 마세요 ;-) 고칠 필요가 있다고 생각되는 문제는 무엇입니까? "효율적인"이란 무엇을 의미합니까? – kleopatra

+1

깜빡 : 단순한 구성을위한 _never_ 서브 클래스 – kleopatra

+0

@kleopatra 두 번째 설명을 좀 더 자세히 설명해 주시겠습니까? – rtheunissen

답변

4

귀하의 문서는 StyledDocument 인스턴스 여야합니다. 그런 다음 Document 인스턴스의 setParagraphAttributes() 메서드를 사용하면됩니다. 여러 추가에 대한

은 별도의 문서 (JTextPane의 인스턴스로 설정되지를 사용합니다.

새로운 빈 문서 인스턴스를 생성 하다며 키트를 사용합니다. JTextPane의에 모든 추가하고하는 setDocument (theDocInstance)를 호출합니다.

+0

재미있는 소리, 나는 그것을 줘야겠다. – rtheunissen

+0

이제는 '글꼴'을 어떻게 설정해야할지 모르겠지만 좋습니다. 나는 그것을 볼 수 있었다. 감사. – rtheunissen

+0

이전처럼 속성과 함께 문자열을 삽입합니다. String이 삽입 된 후 setParagraphAttributes() 메소드를 통해 삽입 된 단편에 단락 속성을 적용합니다. – StanislavL

관련 문제