工作中一个任务是为一个已经有的Composite添加滚动条,原以为可以这样实现:
Composite scrollabledComposite = new Composite(parent, SWT.H_SCROLL | SWT.V_SCROLL);
再设置一下其它的参数就可以了,谁知这样是可以添加滚动条,但是滚动条里的Composite根本不会跟着动;于是,查API,发现有ScrolledComposite这个类,好家伙,这个类里的注释连main () 方法都提供了,正点!
于是,我的代码如下:
parentComposite.setLayout(new FillLayout());
ScrolledComposite scrolledComposite = new ScrolledComposite(parentComposite, SWT.H_SCROLL|SWT.V_SCROLL);
Composite mainComposite = new Composite(scrolledComposite,SWT.NONE);
scrolledComposite.setContent(mainComposite);
mainComposite.setBackground(Display.getCurrent().getSystemColor (SWT.COLOR_WHITE));// White color
mainComposite.setLayout(new GridLayout(1,true));
GridData data = new GridData(GridData.FILL_BOTH);
mainComposite.setLayou