This will help you. When I used SWT.NO_SCROLL for Tree to stop scrolling, but Table , it hides the vertical scroll bar and the table was scrolled when superscript is set.
Wood
use setTopItem(TreeItem) -read documentation (since treeitem has children)
Table
use setTopIndex(int index)
Example:
Display display = new Display(); Shell shell = new Shell(display); shell.setLayout(new GridLayout(2,false)); final Tree tree1 = new Tree(shell, SWT.BORDER | SWT.MULTI ); for (int i = 0; i < 128; i++) { TreeItem item = new TreeItem(tree1, SWT.NONE); item.setText("Tree 1 Item" + i); } GridData data = new GridData(SWT.FILL, SWT.FILL, false, false); data.heightHint=200; tree1.setLayoutData(data); final Tree tree2 = new Tree(shell, SWT.BORDER | SWT.MULTI); tree2.setSize(200, 200); for (int i = 0; i < 128; i++) { TreeItem item = new TreeItem(tree2, SWT.NONE); item.setText("Tree 2 Item" + i); } tree2.getVerticalBar().addSelectionListener(new SelectionListener() { @Override public void widgetSelected(SelectionEvent e) { TreeItem item = tree2.getTopItem(); int i = tree2.indexOf(item); item = tree1.getItem(i); tree1.setTopItem(item); } @Override public void widgetDefaultSelected(SelectionEvent e) { } }); data = new GridData(SWT.FILL, SWT.FILL, false, false); data.heightHint=200; tree2.setLayoutData(data); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose();
source share