Java:StyledText显示行号:修订间差异
imported>Soleverlee (以“给Swt的StyledText组件增加行号显示,[http://stackoverflow.com/questions/11057442/java-swt-show-line-numbers-for-styledtext 参考这里] <source lang="java...”为内容创建页面) |
(没有差异)
|
2015年4月23日 (四) 02:51的最新版本
给Swt的StyledText组件增加行号显示,参考这里
text.addLineStyleListener(new LineStyleListener() {
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);
}
});
text.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent event) {
int maxLine = text.getLineCount();
int lineCountWidth = Math.max(String.valueOf(maxLine).length(), 3);
StyleRange style = new StyleRange();
style.background = Display.getDefault().getSystemColor(SWT.COLOR_GRAY);
style.metrics = new GlyphMetrics(0, 0, lineCountWidth * 8 + 5);
Bullet bullet = new Bullet(ST.BULLET_NUMBER, style);
text.setLineBullet(0, text.getLineCount(), null);
text.setLineBullet(0, text.getLineCount(), bullet);
}
});