2014-01-28 4 views
0

행 번호를 표시하고 일부 색을 지정해야하는 프로젝트에서 JTextPane을 사용하고 있습니다. 행 번호를 표시하려면 'setEditorKit'을 사용하고 텍스트 색상을 지정하려면 DefaultStyledDocument의 insertString() 및 removeString() 메서드를 재정의 한 다음 'JTextPane.setDocument (DefaultStyledDocument_object)'를 사용합니다.JTextPane DefaultStyledDocument 및 setEditorKit 충돌

내가 직면 한 문제는 JTextPane에 EditorKit을 추가하면 색칠 부분이 작동하지 않는다는 것입니다. 그리고 EditorKit을 설정 한 후에 DefaultStyledDocument를 추가하면 insertString 메서드는 캐럿을 '제로 캐럿 위치'로 이동하여 UI를 엉망으로 만듭니다.

다음은 내가 얻으려고하는 기능의 이미지입니다.

What I want
이것은 내 JTextPane의 모습입니다.

Mess
이는 현재

어떻게 내 응용 프로그램에서 'setEditorKit를'과 'DefaultStyledDocument'모두를 사용합니까 모습입니다?

답변

0

행 번호를 문서의 일부로 사용하지 마십시오. 대신 행 번호를 표시하고 구성 요소를 스크롤 창에 대한 행 머리글로 사용하는 구성 요소를 만들어야합니다.

이 접근법의 예는 Text Component Line Number을 참조하십시오.

+0

도움 주셔서 감사합니다. 당신이 제안한 것을했는데 그것은 매력처럼 작동합니다! 어쨌든 왜 행 번호를 문서의 일부로 사용해서는 안되는지 말해 주시겠습니까? 감사! – mundomug

+0

@mundomug는 텍스트의 일부가 아니기 때문에. getText() 메서드를 사용할 때 숫자를보고 싶지 않을 것입니다. – camickr