SWT 滚动条

package cn.com.chengang.swt;

import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.ScrolledComposite;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;

public class ScrolledComposite1 {
    public static void main(String[] args) {
        final Display display = Display.getDefault();
        final Shell shell = new Shell();
        shell.setSize(327, 253);
        // ---------创建窗口中的其他界面组件-------------
        // 定义一个ScrolledComposite,式样为深陷型、带水平滚动条、带垂直滚动条
        ScrolledComposite scrolledComposite = new ScrolledComposite(shell,
                SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
        scrolledComposite.setBounds(12, 6, 256, 148);

        // 定义一个面板Composite,用此面板来容纳其他的组件
        Composite composite = new Composite(scrolledComposite, SWT.NONE);
        // 这里没用setBounds是因为composite和scrolledComposite的左上角自动重合
        composite.setSize(326, 237);// 设置composite面板的大小
        scrolledComposite.setContent(composite);// 设置composite被scrolledComposite控制

        // 建立八个文本框,以横二竖四排列。这里将Text的定义和Text的定位两个语句合写在了一起
        new Text(composite, SWT.BORDER).setBounds(12, 13, 132, 40);
        new Text(composite, SWT.BORDER).setBounds(155, 13, 132, 40);
        new Text(composite, SWT.BORDER).setBounds(10, 70, 132, 40);
        new Text(composite, SWT.BORDER).setBounds(155, 70, 132, 40);
        new Text(composite, SWT.BORDER).setBounds(10, 120, 132, 40);
        new Text(composite, SWT.BORDER).setBounds(155, 120, 132, 40);
        new Text(composite, SWT.BORDER).setBounds(10, 170, 132, 40);
        new Text(composite, SWT.BORDER).setBounds(156, 171, 132, 40);
        // -----------------END------------------------
        shell.layout();
        shell.open();
        while (!shell.isDisposed()) {
            if (!display.readAndDispatch())
                display.sleep();
        }
        display.dispose();
    }
}





<--------------------2-------------------->

    public static void main(String[] args) {
        Display display = new Display();
        Color red = display.getSystemColor(SWT.COLOR_RED);
        Color blue = display.getSystemColor(SWT.COLOR_BLUE);
        Shell shell = new Shell(display);
        shell.setLayout(new FillLayout());



        // set the size of the scrolled content - method 1
        final ScrolledComposite sc1 = new ScrolledComposite(shell, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
        final Composite c1 = new Composite(sc1, SWT.NONE);
        sc1.setContent(c1);
        c1.setBackground(red);
        GridLayout layout = new GridLayout();
        layout.numColumns = 4;
        c1.setLayout(layout);
        Button b1 = new Button(c1, SWT.PUSH);
        b1.setText("first button");
        c1.setSize(c1.computeSize(SWT.DEFAULT, SWT.DEFAULT));



        // set the minimum width and height of the scrolled content - method 2
        final ScrolledComposite sc2 = new ScrolledComposite(shell, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
        sc2.setExpandHorizontal(true);
        sc2.setExpandVertical(true);
        final Composite c2 = new Composite(sc2, SWT.NONE);
        sc2.setContent(c2);
        c2.setBackground(blue);
        layout = new GridLayout();
        layout.numColumns = 4;
        c2.setLayout(layout);
        Button b2 = new Button(c2, SWT.PUSH);
        b2.setText("first button");
        sc2.setMinSize(c2.computeSize(SWT.DEFAULT, SWT.DEFAULT));

        Button add = new Button(shell, SWT.PUSH);
        add.setText("add children");
        final int[] index = new int[] { 0 };
        add.addListener(SWT.Selection, new Listener() {

            public void handleEvent(Event e) {
                index[0]++;
                Button button = new Button(c1, SWT.PUSH);
                button.setText("button " + index[0]);
                // reset size of content so children can be seen - method 1
                c1.setSize(c1.computeSize(SWT.DEFAULT, SWT.DEFAULT));
                c1.layout();

                button = new Button(c2, SWT.PUSH);
                button.setText("button " + index[0]);
                // reset the minimum width and height so children can be seen - method 2
                sc2.setMinSize(c2.computeSize(SWT.DEFAULT, SWT.DEFAULT));
                c2.layout();
            }
        });

        shell.open();
        while (!shell.isDisposed()) {
            if (!display.readAndDispatch())
                display.sleep();
        }
        display.dispose();
    }


<----------------------3------------------------>
如果是  FormLayout composite1Layout = new FormLayout();
	composite1.setLayout(composite1Layout);
如果设置了FormLayout ,那么上面的控件也需要设置为FormLayout。否则就将无法显示。 
无法显示的情况
cTabItem2 = new CTabItem(cTabFolder1, SWT.NONE);
cTabItem2.setText("Method Comment");
{
composite6 = new Composite(cTabFolder1, SWT.NONE);
FormLayout composite6Layout = new FormLayout();
composite6.setLayout(composite6Layout);
cTabItem2.setControl(composite6);
	{
		scrolledComposite1 = new ScrolledComposite(composite6, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
		FormData scrolledComposite1LData = new FormData();   // *关键在此   
		scrolledComposite1LData.width = 539;
		scrolledComposite1LData.height = 215;
		scrolledComposite1LData.left =  new FormAttachment(0, 1000, 2);
		scrolledComposite1LData.top =  new FormAttachment(0, 1000, 2);
		scrolledComposite1.setLayoutData(scrolledComposite1LData);
			{
				composite7 = new Composite(scrolledComposite1, SWT.NONE);
				scrolledComposite1.setContent(composite7);
				composite7.setBounds(0, 0, 560, 303);
				{
					label6 = new Label(composite7, SWT.NONE);
					label6.setText("Method Name:");
					label6.setBounds(35, 30, 160, 20);
					label6.setFont(SWTResourceManager.getFont("宋体", 12, 0, false, false));
				}
				{
					text6 = new Text(composite7, SWT.BORDER);
					text6.setText("text6");
					text6.setBounds(200, 60, 220, 20);
					text6.setFont(SWTResourceManager.getFont("宋体", 12, 0, false, false));
				}
				{
					button3 = new Button(composite7, SWT.PUSH | SWT.CENTER);
					button3.setText("Seek..");
					button3.setBounds(439, 66, 53, 23);
				}
			}
	}
}

你可能感兴趣的:(eclipse)