您的位置:首页 > 其它

Plug-in 高级控件

2017-04-26 13:39 204 查看

Plug-in 高级控件

首先申明下,本文为笔者学习《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();

显示如下

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: