Digamos que cada widget tiene 4 lados, por ejemplo, un botón tiene arriba, abajo, izquierda y derecha.
Todos los siguientes ejemplos asumen que sabe cómo crear una aplicación de complemento con una vista, ya que el código funcionará bajo
1. Uso básico de FormLayout
El uso básico de FormLayout es el siguiente:
public void createPartControl(Composite parent) { //create a FormLayout and set its margin FormLayout layout = new FormLayout(); layout.marginHeight = 5; layout.marginWidth = 5; //set layout for parent parent.setLayout(layout); //create a button or any other widget Button button2 = new Button(parent, SWT.PUSH); button2.setText("B2"); //create FormData and set each of its sides FormData formData = new FormData(); formData.top = new FormAttachment(0, 0); formData.bottom = new FormAttachment(50, 0); formData.left = new FormAttachment(10, 0); formData.right = new FormAttachment(60, 0); //set FormDate for button button2.setLayoutData(formData); } |
Como se muestra en el ejemplo anterior, necesitaremos crear varios
Por ejemplo, lo siguiente establecerá la posición superior del widget en el 10% de las alturas: 5 píxeles.
formData.top = new FormAttachment (10, -5); |
La característica más interesante de FormAttachment es que puede establecer la posición en función de otro widget. En ese caso, «x» es otro widget.
Por ejemplo, el siguiente código establece la posición izquierda del widget para que sea otro widget, es decir, la posición derecha del botón1 + 5 píxeles.
formData.left = new FormAttachment (button1, 5); |
El botón del ejemplo anterior tendrá el siguiente aspecto:
2. Adjuntar a otros widgets
El siguiente ejemplo contiene 3 botones que utilizan
public void createPartControl(Composite parent) { // create a FormLayout and set its margin FormLayout layout = new FormLayout(); layout.marginHeight = 5; layout.marginWidth = 5; // set layout for parent parent.setLayout(layout); Button button1 = new Button(parent, SWT.PUSH); button1.setText("B1"); // create a button or any other widget Button button2 = new Button(parent, SWT.PUSH); button2.setText("B2"); // create FormData and set each of its sides FormData formData = new FormData(); formData.top = new FormAttachment(button1, 0); formData.bottom = new FormAttachment(30, 0); formData.left = new FormAttachment(10, 0); formData.right = new FormAttachment(50, 0); // set FormDate for button button2.setLayoutData(formData); // create a button or any other widget Button button3 = new Button(parent, SWT.PUSH); button3.setText("B2"); // create FormData and set each of its sides FormData formData2 = new FormData(); formData2.top = new FormAttachment(button2, 0); formData2.bottom = new FormAttachment(50, 0); formData2.left = new FormAttachment(button2, 0); formData2.right = new FormAttachment(80, 0); // set FormDate for button button3.setLayoutData(formData2); } |
Los tres botones se pueden configurar fácilmente encadenados con la posición relativa al widget en el mismo compuesto.