Plug-in 高级控件

来源:互联网 发布:全知之眼音乐 编辑:程序博客网 时间:2024/06/18 18:02

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() {@Overridepublic void run() {pb1.setSelection(selection++%20);}});try {Thread.sleep(1000);} catch (InterruptedException e) {}}}}.start();

显示如下



0 0