
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.custom.ScrolledComposite;
import org.eclipse.swt.layout.*;
public class B{
public static void main(String[] args){
Display display=new Display();
Shell shell=new Shell(display);
shell.setText("ScrolledComposite滚动面板");
FillLayout layout1=new FillLayout();
layout1.marginHeight=20;
layout1.marginWidth=20;
shell.setLayout(layout1);//必须要有
//shell.setLayout(new FillLayout(SWT.HORIZONTAL));//必须要有
//创建一个滚动面板
ScrolledComposite scrolledc=new ScrolledComposite(shell,SWT.V_SCROLL|SWT.H_SCROLL|SWT.BORDER);
//设置滚动面板的布局
scrolledc.setLayout(new FillLayout());
//在滚动面板中创建一个composite面板
Composite composite=new Composite(scrolledc,SWT.NONE);
//设置Composite面板的布局
GridLayout layout=new GridLayout();
layout.numColumns=6;//设置列数为6
composite.setLayout(layout);
//在Composite面板中放几个按钮
for(int i=0;i<20;i++){
Button bt=new Button(composite,SWT.BORDER);
bt.setText("按钮"+i);
}
//composite.setSize(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
//composite.setSize(50,80);//错误的
composite.pack();
//将普通面板Composite设置受控于滚动面板
scrolledc.setContent(composite);
//打开窗口,进行窗口的显示
shell.setSize(200,200);
//shell.pack();
shell.open();
while(!shell.isDisposed()){
//当窗口没有被释放的时候
if(!display.readAndDispatch()){
display.sleep();
}
}
display.dispose();
}
}