2012-03-02 2 views
1

저는 기본적인 Swing 어플리케이션을 만들고 있습니다. 나는 jTextPane 버튼이 있습니다. 사용자가 jTextPane에서 텍스트를 선택하고 버튼을 누르면 선택된 텍스트가 굵게 표시됩니다. 이것은 StyleDocument을 수정하여 수행됩니다.StyledDocument를 사용하여 jTextPane의 스타일과 텍스트를 설정하십시오.

나는 이전 JTextPane가을 닫습니다, 일시적 스타일의 텍스트를 저장 새로운 JTextPane가을 개방하고, 이전에 저장 스타일의 텍스트를 기반으로 채울 수 있어야합니다. jTextPane은 생성자에서 StyleDocument을 취하지 만 이전 StyleDocument을 사용하여 새 jTextPane을 만들려고해도 작동하지 않는 것 같습니다. 결국 제거 된 이전 jTextPane StyleDocument에서 레퍼런스를 전달하기 때문에 그것이다고 생각합니다.

StyleDocument를 복사하거나 복제 할 수있는 방법이 있습니까? 인터페이스라고 생각하지만 DefaultStyledDocument를 사용하고 있습니까? 이 작업을 수행하는 더 좋은 방법이 있습니까?

답변

2

문서는 예를 들어 새로운 인스턴스로 대체 될 수 있습니다. EditorKit을 설정하거나 setText()를 호출하면 (setText가 문서를 다시 작성하는 경우).

그래서 모든 준비가 완료된 후 이전 문서 호출 setDocument (oldDoc)에 referece를 저장할 때.

아니면 기존의 컨텐츠를 저장하고 같은 것을 사용하여 다시 설정할 수 있습니다이

http://java-sl.com/editor_kit_tutorial.html 읽기 리더와 "예"섹션에서 작가 및 사용 코드에 대한.

+0

+1'(setText는 어떤 경우 문서를 다시 만듭니다.)'Stas는 '예'를 클론하여 문서화 할 수 있습니다. 'Document myNewDocument = oldDocument' 또는 다른 뭔가 있습니까 ??? – mKorbel

+0

setText를 호출하면 이전 문서의 내용이 필요하지 않습니다. 그래서 새로운 인스턴스가 생성됩니다. 유일한 것은 DocumentListeners와 속성을 이동하는 것입니다. – StanislavL

+0

그런 것들이 나에게 감사합니다. – mKorbel

관련 문제