SWT里Slider和Scale的区别

博客指出以前认为Slider和Scale仅外观有别,实际并非如此。Slider的getSelection()能得到的最大值并非getMaximum()的值,需减去getThumb()值,后者缺省为10、最小为1,还建议运行程序观察控制台输出。

以前以为Slider和Scale之间只是外观的区别,今天发现不是这样的,因为Slider有一个特点:getSelection()能得到的最 大值并不是getMaximum()的值,要减去getThumb()值,后者是中间的滑块所拥有的值,缺省为10,最小为1。运行这个程序观察控制台的 输出。

import org.eclipse.swt.*;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.*;

public class SliderTest {

    
public static void main(String[] args) {
        Display display 
= new Display();
        Shell shell 
= new Shell(display);
        
        
//Slider
        final Slider slider = new Slider(shell, SWT.HORIZONTAL);
        slider.setBounds(
101020032);
        slider.setMinimum(
0);
        slider.setMaximum(
100);
        slider.setThumb(
5);
        slider.addSelectionListener(
new SelectionAdapter() {
            
public void widgetSelected(SelectionEvent e) {
                System.out.println(
"Slider Selection:" + slider.getSelection());
            }
        });

        
//Scale
        final Scale scale = new Scale(shell, SWT.HORIZONTAL);
        scale.setBounds(
105020072);
        scale.setMinimum(
0);
        scale.setMaximum(
100);
        scale.addSelectionListener(
new SelectionAdapter() {
            
public void widgetSelected(SelectionEvent e) {
                System.out.println(
"Scale Selection:" + scale.getSelection());
            }
        });

        shell.open();
        
while (!shell.isDisposed()) {
            
if (!display.readAndDispatch())
                display.sleep();
        }
        display.dispose();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值