- importorg.eclipse.swt.SWT;
- importorg.eclipse.swt.custom.ScrolledComposite;
- importorg.eclipse.swt.graphics.Color;
- importorg.eclipse.swt.layout.FillLayout;
- importorg.eclipse.swt.layout.GridLayout;
- importorg.eclipse.swt.widgets.Button;
- importorg.eclipse.swt.widgets.Composite;
- importorg.eclipse.swt.widgets.Display;
- importorg.eclipse.swt.widgets.Event;
- importorg.eclipse.swt.widgets.Listener;
- importorg.eclipse.swt.widgets.Shell;
- publicclassss{
- publicstaticvoidmain(String[]args){
- Displaydisplay=newDisplay();
- Colorred=display.getSystemColor(SWT.COLOR_RED);
- Colorblue=display.getSystemColor(SWT.COLOR_BLUE);
- Shellshell=newShell(display);
- shell.setLayout(newFillLayout());
- //setthesizeofthescrolledcontent-method1
- finalScrolledCompositesc1=newScrolledComposite(shell,SWT.H_SCROLL
- |SWT.V_SCROLL|SWT.BORDER);
- finalCompositec1=newComposite(sc1,SWT.NONE);
- sc1.setContent(c1);
- c1.setBackground(red);
- GridLayoutlayout=newGridLayout();
- layout.numColumns=4;
- c1.setLayout(layout);
- Buttonb1=newButton(c1,SWT.PUSH);
- b1.setText("firstbutton");
- /*
- *这是两种用法中的一种,效果是:根据已经存在的组件,计算需要的composite的区域的大小
- *即运行结果中红色显示的部分。
- */
- c1.setSize(c1.computeSize(SWT.DEFAULT,SWT.DEFAULT));
- //settheminimumwidthandheightofthescrolledcontent-method2
- finalScrolledCompositesc2=newScrolledComposite(shell,SWT.H_SCROLL
- |SWT.V_SCROLL|SWT.BORDER);
- sc2.setExpandHorizontal(true);
- sc2.setExpandVertical(true);
- finalCompositec2=newComposite(sc2,SWT.NONE);
- sc2.setContent(c2);
- c2.setBackground(blue);
- layout=newGridLayout();
- layout.numColumns=4;
- c2.setLayout(layout);
- Buttonb2=newButton(c2,SWT.PUSH);
- b2.setText("firstbutton");
- /*
- *这是第二种用法,整个composite区域是用到的Composite区域
- */
- sc2.setMinSize(c2.computeSize(SWT.DEFAULT,SWT.DEFAULT));
- Buttonadd=newButton(shell,SWT.PUSH);
- add.setText("addchildren");
- finalint[]index=newint[]{0};
- add.addListener(SWT.Selection,newListener(){
- publicvoidhandleEvent(Evente){
- index[0]++;
- Buttonbutton=newButton(c1,SWT.PUSH);
- button.setText("button"+index[0]);
- //resetsizeofcontentsochildrencanbeseen-method1
- c1.setSize(c1.computeSize(SWT.DEFAULT,SWT.DEFAULT));
- c1.layout();
- button=newButton(c2,SWT.PUSH);
- button.setText("button"+index[0]);
- //resettheminimumwidthandheightsochildrencanbeseen-
- //method2
- sc2.setMinSize(c2.computeSize(SWT.DEFAULT,SWT.DEFAULT));
- c2.layout();
- }
- });
- shell.open();
- while(!shell.isDisposed()){
- if(!display.readAndDispatch())
- display.sleep();
- }
- display.dispose();
- }
- }
SWT之ScrolledComposite
最新推荐文章于 2023-09-07 12:24:20 发布