0

現在、StyledTextウィジェットを使用して、Java ファイル内のメソッド定義など、実際のコードの「抜粋」を表示しています。

私の問題は、 my に表示される行番号がStyledText常に 1 で始まることです。これは、元のファイルの実際の行番号とは異なります。たとえば、元のソースが次のようになっているとします。

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

次に、foo()メソッドがStyledTextウィジェットに表示されるときに、1 ではなく 4 から始まる行番号を表示したいと考えています。

これを達成する方法はありますか?javadoc を読みましたが、良い方法がわかりませんでした。

4

1 に答える 1

0

のを変更するだけLineStyleEvent.bulletIndexですLineStyleListener

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
    }
});

次のようになります。

ここに画像の説明を入力

于 2013-08-28T21:15:26.593 に答える