Java - Scroll en ScrolledComposite

 
Vista:

Scroll en ScrolledComposite

Publicado por Álvaro (1 intervención) el 19/05/2008 18:24:16
Hola a todos!
Mi duda es la siguiente; estoy haciendo un plug-in para Eclipse y quiero añadir multiples Composites dentro de un ScrolledComposite. Si no estoy equivocado, sólo puedo añadir un elemento dentro del ScrolledComposite mediante la función setContent(Control control), así que yo añado un Composite que he llamado "compositeFillScroll" el cual va a contener los Composites que quiero crear y que a su vez contendrán botones, cajas de texto, etc. El caso es que no consigo que se vean todos los Composites, ya que no aparece el Scroll Vertical y aunque exija que se muestre mediante la función del ScrolledComposite "setAlwaysShowScrollBars(true)" no refleja como que hay nada que mostrar además de lo visible. Aquí os dejo el código que me trae de cabeza

/*
* Introduction Tab
*/
tabIntro = new TabItem(tabFolder, SWT.NULL);
compoIntro = new Composite(tabFolder, SWT.NULL);
compoIntro.setLayout(new FormLayout());
tabIntro.setControl(compoIntro);

compoIntroScroll = new ScrolledComposite(compoIntro, SWT.BORDER
| SWT.V_SCROLL);
compoIntroScroll.setLayout(new FillLayout());
formData = new FormData();
formData.left = new FormAttachment(10, 0);
formData.right = new FormAttachment(90, 0);
formData.top = new FormAttachment(10, 0);
formData.bottom = new FormAttachment(90, 0);
compoIntroScroll.setLayoutData(formData);

Composite compositeFillScroll = new Composite(compoIntroScroll,
SWT.BORDER);
compositeFillScroll.setLayout(new FormLayout());

for (int i = 0; i < 100; i++) {
Composite composite = new Composite(compositeFillScroll, SWT.BORDER);
composite.setLayout(new FormLayout());
formData = new FormData();
formData.left = new FormAttachment(1, 0);
formData.right = new FormAttachment(99, 0);
formData.top = new FormAttachment(1+20*i,0);
formData.bottom = new FormAttachment(20 + 20*i, 0);
composite.setLayoutData(formData);

Button btn = new Button(composite, SWT.PUSH);
formData = new FormData();
formData.left = new FormAttachment(10, 0);
formData.right = new FormAttachment(90, 0);
formData.top = new FormAttachment(10, 0);
formData.bottom = new FormAttachment(90, 0);
btn.setText("Button "+i);
btn.setLayoutData(formData);
}

compoIntroScroll.setContent(compositeFillScroll);
compoIntroScroll.setExpandVertical(true);
compoIntroScroll.setExpandHorizontal(true);


Os agradecería vuestra ayuda además de otras posibles soluciones sin usar un ScrolledComposite.

Muchas gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder