SWT Treeview größe ändern

Tomas

Bekanntes Mitglied
hallo, ich hab schon einiges darüber gesucht/gefunden aber nichts was mir weiterhilft.

Also:

ich habe einen Treeviewer und ich will diesen eine bestimmte Größe zuweisen.

Code:
 ConnectionDialog extends Dialog

Code:
tv = new TreeViewer(parent, SWT.BORDER);

		tv.setLabelProvider(new DiscoveryLabelProvider());
		tv.setContentProvider(new DiscoveryContentProvider());
		tv.setInput(DiscoveryNodeSingletonProvider.getInstance().getRoot());
		tv.getTree().setSize(new Point(400, 200));
		tv.refresh();
                tv.getTree().update();
		tv.getTree().redraw();
		parent.redraw();

doch es funktioniert nicht.

wenn ich aber einen button erstelle

Code:
	private void createDiscoverButton(Composite composite) {
		Button discoverServer = new Button(composite, SWT.PUSH);
		discoverServer.setText("Discover");
		discoverServer.addSelectionListener(new SelectionListener() {

			@Override
			public void widgetSelected(SelectionEvent e) {
				discoverServer(text.getText());
				tv.getTree().setSize(new Point(400, 200));
				// tv.expandAll();
			}
und ihn klicke wird die größe verändert!

Nun warum wird beim klicken des buttons die größe des trees verändert. (beim anklicken befülle ich den tree). Hilft mir da keine refresh oder redraw Methode? Hab ich was in swt verschlafen?

wenn ich den tree vorher erstelle und im treeviewer einfüge, passiert ebenso nichts.

Danke für die Hilfe
 
Größen ändert man nicht direkt, der Layout Manager setzt die Größe.
Je nach Layout Manager kannst du hints in Form von LayoutData setzen. Wenn du die LayoutData änderst, musst du gegebenenfalls layout auf dem Container aufrufen damit sich die Änderungen auch auswirken.
 
i knew there was a little thing^^

thanks for remembering me to lay out the widgets^^

Code:
tabfolder.setLayoutData(new GridData(400, 400)); //SIZE
composite.layout(); //parent composite, lay out all children

thanks
 

Zurück
Oben