2013-08-28 5 views
0

현재 StyledText 위젯을 사용하여 Java 파일 내의 메소드 정의와 같은 실제 코드의 "발췌"를 표시합니다.Java SWT StyledText, 시작 행 번호 변경

내 문제는 내 StyledText에 표시된 줄 번호가 항상 원래 파일의 실제 줄 번호와 다른 1부터 시작한다는 것입니다. 내가 줄 번호가 1

하지, 4부터 보여주고 싶은 다음

1: package something; 
2: 
3: public class MyClass { 
4:  public void foo() { 
5:   // Do something... 
6:  } 
7: } 

foo() 방법은 내 StyledText 위젯에 표시됩니다 거기 : 같은 예를 들어, 원본 소스가 보이는 경우 이것을 달성하는 방법? 나는 javadoc을 읽었지만 좋은 방법을 알 수 없었다.

답변

0

는 그냥 LineStyleListenerLineStyleEvent.bulletIndex을 변경

final StyledText text = new StyledText(shell, SWT.NONE); 

text.setText("lalala\n\nlalala\n\nlalala\n\nlalala\n\nlalala\n\nlalala\n\n"); 
text.addLineStyleListener(new LineStyleListener() 
{ 
    @Override 
    public void lineGetStyle(LineStyleEvent e) 
    { 
     // Set the line number 
     e.bulletIndex = text.getLineAtOffset(e.lineOffset); 

     // Set the style, 12 pixles wide for each digit 
     StyleRange style = new StyleRange(); 
     style.metrics = new GlyphMetrics(0, 0, Integer.toString(text.getLineCount() + 1).length() * 12); 

     // Create and set the bullet 
     e.bullet = new Bullet(ST.BULLET_NUMBER, style); 

     // Apply the offset 
     e.bulletIndex += YOUR_OFFSET; // I used 3 here 
    } 
}); 

은 다음과 같습니다

enter image description here