首先申明下,本文为笔者学习《Eclipse插件开发学习笔记》的笔记,并加入笔者自己的理解和归纳总结。
1. StyleText
StyleText
可以为不同部分的文字单独制定各种显示属性,StyleRange
类型中包含了所有特除显示属性。
StyleRange
属性,
font
,字体foreground
,字体颜色background
,背景颜色underline
,是否有下划线strikeout
,是否有删除线rise
,文字上升(负值下降)
shell.setLayout(new FillLayout());
StyledText text = new StyledText(shell, SWT.NONE);
text.setText("Hello SWT and JFace!");
// 设置字体和下划线
font = new Font(display, "Courier New", 16, SWT.ITALIC);
StyleRange range1 = new StyleRange();
range1.start = 0;
range1.length = 5;
range1.font = font;
range1.underline = true;
text.setStyleRange(range1);
// 设置删除线和文字位置
StyleRange range2 = new StyleRange();
range2.start = 6;
range2.length = 7;
range2.strikeout = true;
range2.rise = 10;
text.setStyleRange(range2);
// 设置字体颜色和背景色
redColor = display.getSystemColor(SWT.COLOR_RED);
yellowColor = display.getSystemColor(SWT.COLOR_YELLOW);
StyleRange range3 = new StyleRange();
range3.start = 14;
range3.length = 5;
range3.foreground = redColor;
range3.background = yellowColor;
text.setStyleRange(range3);
text.setStyleRange(range3);
... ...
font.dispose();
redColor.dispose();
yellowColor.dispose();
显示如下
2. 进度条
ProgressBar
控件可以用来动态地显示工作进度。
setMinimum()
、setMaximum()
和setSelection()
方法分别设置进度条最小值、最大值和当前进度。
SWT.INDETERMINATE
样式表示不确定当前进度的进度条。
GridLayout layout = new GridLayout();
layout.numColumns = 1;
layout.verticalSpacing = 10;
shell.setLayout(layout);
ProgressBar pb1 = new ProgressBar(shell, SWT.SMOOTH);
pb1.setMaximum(20);
pb1.setSelection(10);
GridData gdPb1 = new GridData(SWT.FILL, SWT.CENTER, true, false);
pb1.setLayoutData(gdPb1);
ProgressBar pb2 = new ProgressBar(shell, SWT.INDETERMINATE);
GridData gdPb2 = new GridData(SWT.FILL, SWT.CENTER, true, false);
pb2.setLayoutData(gdPb2);
new Thread() {
public void run() {
selection = 1;
while(!pb1.isDisposed()) {
display.asyncExec(new Runnable() {
@Override
public void run() {
pb1.setSelection(selection++%20);
}
});
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
}
}
}.start();
显示如下