swt List 与 GridLayout

必须要让GridData占满垂直方向,List的滚动条才会显示出来。

 

new GridData(SWT.FILL, SWT.FILL, true, true)

 

滚动条没有显示

public static void main(String[] args) {
	Display display = new Display();
	Shell shell = new Shell(display);
	shell.setLayout(new GridLayout());

	org.eclipse.swt.widgets.List list = new org.eclipse.swt.widgets.List(
			shell, SWT.V_SCROLL);

        //set grabExcessVerticalSpace to false
	list.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));

	// Add a bunch of items to it
	for (int i = 0; i < 100; i++) {
		list.add("A list item" + i);
	}

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

 

滚动条显示

//set grabExcessVerticalSpace to true
list.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

你可能感兴趣的:(eclipse)