SWT - Scrollbar para um Composite nao funciona!?

Ola pessoal,

tenho uma tabela enorme dentro de um Composite, esta tabela eh muito maior que a minha janela, logo vou precisar que essa janela tenha uma scrollbar.

coloquei o estilo SWT.V_SCROLL na contrucao do meu Composite, apareceu uma barra de rolagem que nao funciona de jeito nenhum. Descobri entao um tal de ScrolledComposite em org.eclipse.swt.custom, mas toda vez que tento usa-lo aparece a seguinte excecao:

java.lang.IllegalArgumentException: Widget has the wrong parent

segundo a especificacao o construtor tem os seguintes argumentos:

ScrolledComposite(Composite parent, int style)

e o meu codigo ficou assim:

ScrolledComposite sc = new ScrolledComposite( getContainer(), SWT.V_SCROLL );
Composite composite = new Composite( sc, SWT.NONE );
sc.setContent( composite );

o metodo getContainer() que eu usei retorna sim um Composite…
mas mesmo assim da esse erro. Em uma outra tentativa eu coloquei um outro composite como parent para o scrolledcomposite, nao deu erro mas tb nao apareceu nada na tela!

alguem tem ideia do que esta acontecendo :?:

Obrigadu!

veja estes exemplos:

http://www.eclipse.org/documentation/html/plugins/org.eclipse.platform.doc.isv/doc/reference/api/org/eclipse/swt/custom/ScrolledComposite.html

qualquer problema coloca seu código aqui …

[code]import org.eclipse.swt.;
import org.eclipse.swt.widgets.
;
import org.eclipse.swt.layout.;
import org.eclipse.swt.custom.
;

public class Main {

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

// this button is always 400 x 400. Scrollbars appear if the window is resized to be
// too small to show part of the button
ScrolledComposite c1 = new ScrolledComposite(shell, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
Button b1 = new Button(c1, SWT.PUSH);
b1.setText("fixed size button");
b1.setSize(400, 400);
c1.setContent(b1);

// this button has a minimum size of 400 x 400. If the window is resized to be big
// enough to show more than 400 x 400, the button will grow in size. If the window
// is made too small to show 400 x 400, scrollbars will appear.
ScrolledComposite c2 = new ScrolledComposite(shell, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
Button b2 = new Button(c2, SWT.PUSH);
b2.setText("expanding button");
c2.setContent(b2);
c2.setExpandHorizontal(true);
c2.setExpandVertical(true);
c2.setMinWidth(400);
c2.setMinHeight(400);

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

}

}
[/code]

Valeu!

faltava setar o tamanho do composite(!)

:oops: