यह मेरा कामकाजी कार्यान्वयन है। क्योंकि lineGetStyle() केवल वर्तमान में स्क्रीन पर लाइनों के साथ कहा जाता है
styledText.addLineStyleListener(new LineStyleListener() {
@Override
public void lineGetStyle(LineStyleEvent event) {
// Using ST.BULLET_NUMBER sometimes results in weird alignment.
//event.bulletIndex = styledText.getLineAtOffset(event.lineOffset);
StyleRange styleRange = new StyleRange();
styleRange.foreground = Display.getCurrent().getSystemColor(SWT.COLOR_GRAY);
int maxLine = styledText.getLineCount();
int bulletLength = Integer.toString(maxLine).length();
// Width of number character is half the height in monospaced font, add 1 character width for right padding.
int bulletWidth = (bulletLength + 1) * styledText.getLineHeight()/2;
styleRange.metrics = new GlyphMetrics(0, 0, bulletWidth);
event.bullet = new Bullet(ST.BULLET_TEXT, styleRange);
// getLineAtOffset() returns a zero-based line index.
int bulletLine = styledText.getLineAtOffset(event.lineOffset) + 1;
event.bullet.text = String.format("%" + bulletLength + "s", bulletLine);
}
});
styledText.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent e) {
// For line number redrawing.
styledText.redraw();
}
});
ध्यान दें कि वाक्य रचना के संभावित भूमि के ऊपर जब बुला पुनः बनाने (पुन: गणना पर प्रकाश डाला), स्वीकार होने की संभावना है।
स्रोत
2015-04-24 13:50:27
जहां तक मुझे पता है, वहां कोई सही सीधा तरीका नहीं है; आप हमेशा अपने टेक्स्ट एडिटर के बाईं ओर एक अवांछनीय टेक्स्ट बॉक्स डाल सकते हैं। – purtip31
ग्रहण लड़कों का उपयोग कर रहे कार्यान्वयन की जांच करें। –
@Adam वे दिखाए गए अनुसार 'SourceViewer' का उपयोग कर रहे हैं [http://www.dsource.org/projects/dwt/wiki/JFaceTextExample)। मैंने इस उदाहरण की कोशिश की, लेकिन किसी भी तरह से मैं इसे ठीक से चलाने में सक्षम नहीं था। यह रनटाइम पर अजीब चीजें कर रहा था। वैसे भी, मैं अपना 'स्टाइलटेक्स्ट' रखना चाहता हूं :) – kon