8.2.2. 滑块(Slider), 标尺(Scale)和进度条(ProgressBar)窗口组件
标尺(Scale)表示一段可选择的连续值。范围可以用Scale类的setMinimum() 和setMaximum()方法设定。并可以使用getSelection()方法得到所选择的值。标尺在一次只有一个选择的值。也就是说,没有多选的可能。
图 6. 包含在一起的滑块和标尺
根据传递给构造函数的参数值的不同,我们可以创建不同的滑块和标尺。滑块和标尺常量如表5所示:
表 5. SWT滑块和标尺的样式常量 |
|
SWT.HORIZONTAL |
显示水平或者垂直组件 |
随意地,你可以使用SWT.BORDER常量来在标尺周围创建边框。这个常量对滑块没有作用。
Source 4. Slider widget example |
final Slider slider = new Slider(shell,SWT.VERTICAL); slider.setMinimum(0); slider.setMaximum(100); slider.setIncrement(5); slider.setPageIncrement(10); slider.setSelection(25); slider.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { System.out.println("Selection:"+ slider.getSelection()); } } ); |
进度条组件类似于滑块和标尺组件,但是它不能被选择。它用于显示一个任务的进度。你可以对进度条组件使用SWT.SMOOTH and SWT.INTERMINATE常量。
8.2.3. 文本窗口组件
一个文本窗口组件可以用于显示或者编辑文本。另外,你可以使用StyledText窗口组件来用不同的字体和颜色显示文本。StyledText窗口组件允许设置前景、背景色和指定范围文本块的字体。
图 7. Text窗口组件
我们可以使用表6所列的常量来创建Text窗口组件。因此,SWT.H_SCROLL和SWT.V_SCROLL常量可用于对Text窗口组件增加滚动条。
表 6. SWT Text style bit常量 |
|
SWT.MULTI |
显示单行还是多行窗口组件 |
SWT.READ_ONLY |
创建只读的组件 |
SWT.WRAP |
文本自动换行 |
源代码 5是一个简单的使用Text组件的例子.
Source 5. Text widget example |
Text text = new Text(shell, SWT.MULTI|SWT.WRAP); |
8.2.4. 列表(List)窗口组件
List窗口组件可用于显示可选择的字符串列表。在选择的情况下,List对象会发送事件通告给它的listeners。这种类型的选择可以是单选,也可以是多选。选择的类型是由SWT.SINGLE和SWT.MULTI常量决定的。List窗口组件是可滚动的组件。因此SWT.H_SCROLL和SWT.V_SCROLL常量可用于给Text窗口组件增加滚动条。
图 8. List 窗口组件
下边的代码片断显示了一个简单的List窗口组件。
Source 6. List example |
final List list = new List(shell,SWT.MULTI); for (int i = 1; i < 11; i++) { list.add(i+".)www.korayguclu.de"); } list.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { List list = (List) e.getSource(); String[] str = list.getSelection(); for (int i = 0; i < str.length; i++) { System.out.println("Selection: "+str[i]); } } } ); |
8.2.5. 窗框组件
窗框组件可用于在可改变的区域里显示组合窗口组件。下图就是一个窗框组件例子。
图 9. 窗框组件
下边是一个基本的窗框组件例子:
Source 7. Sash example |
Button button = new Button(shell,SWT.PUSH); Sash sash = new Sash(shell, SWT.VERTICAL); Button button1 = new Button(shell,SWT.PUSH); |
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。