技术开发 频道

Eclipse开发经典教程:展现组件

刻度组件Scale

Scale和Slider类似,在SWT中都表示一种尺度,但两者的表现形式不一样,Scale更像一个刻度,而Slider则是提供一个滚动条。添加Scale组件的步骤如下:

1. 创建Scale对象,并指定创建的样式,例如“Scale scale = new Scale(shell, SWT.VERTICAL);”。
2. 设置Scale的最大值和最小值,例如“scale.setMaximum(20);”。
3. 设置Scale增量的增加或递减值,例如“scale.setPageIncrement(5);”。
4. 添加Scale的事件监听器,例如“scale.addSelectionListener(selectionListener);”。

为了更好地掌握Scale组件,下面通过一个实例演示如何创建Scale组件,代码如例程5所示。

例程5 ScaleExample.java
public class ScaleExample { Display display = new Display(); Shell shell = new Shell(display); Scale scale; Text value; public ScaleExample() { shell.setLayout(new GridLayout(1, true)); Label label = new Label(shell, SWT.NULL); label.setText("Volume:"); //添加Scale组件 scale = new Scale(shell, SWT.VERTICAL); scale.setBounds(0, 0, 40, 200); //设置Scale的最大值 scale.setMaximum(20); //设置Scale的最小值 scale.setMinimum(0); //设置Scale的增量值 scale.setPageIncrement(5); //添加Scale的事件监听器 scale.addListener(SWT.Selection, new Listener() { public void handleEvent(Event event) { int perspectiveValue = scale.getMaximum() - scale.getSelection() + scale.getMinimum(); value.setText("Vol: " + perspectiveValue); } }); value = new Text(shell, SWT.BORDER | SWT.SINGLE); value.setEditable(false); scale.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER)); value.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER)); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } display.dispose(); } private void init() { } public static void main(String[] args) { new ScaleExample(); } }

上例中,通过事件监听器监听当前选择的刻度,并用Text组件显示出来,程序运行效果如图5所示。


图5 Scale组件


Scale组件能够精确的显示刻度,用户可以设制好刻度的范围,这是非常有用的。

0
相关文章