Hemos visto algunos ejemplos sencillos que enseñan a dimensionar y a situar los widgets hijos tomando como base el tamaño del padre. Hasta ahora, este tipo de cálculo se ha producido como respuesta a un escuchador de ajuste de tamaño. Esta suele ser la mejor manera de manejar la colocación de los widgets simples. Sin embargo, existen patrones comunes que las aplicaciones utilizan en el momento de colocar los widgets. Estos patrones se pueden estructurar como algoritmos de diseño configurables que muchas aplicaciones distintas pueden reutilizar.
SWT define diseños (layout) cuyo uso general es proporcionar la posibilidad de situar y dimensionar los widgets hijos en un compuesto. Los diseños son subclases de la clase abstracta Layout. Los diseños estándar de SWT se encuentran en el paquete org.eclipse.swt.layout.
Conviene que comprenda algunas definiciones generales cuando se disponga a redimensionar y a situar los widgets:
Estos conceptos son importantes para las aplicaciones, con independencia de si se utiliza o no un diseño. Podríamos decir que un diseño es una manera práctica de empaquetar la función de redimensionamiento para la reutilización.
Los diseños presentan algunos conceptos adicionales:
En el tema Interpretar los diseños en SWT encontrará más información e imágenes que muestran estos conceptos.
El siguiente fragmento de código muestra el caso simple de una aplicación que utiliza un retorno de llamada de redimensionamiento para dimensionar una etiqueta con el tamaño de la shell padre:
Display display = new Display (); Shell shell = new Shell (display); Label label = new Label (shell, SWT.CENTER); shell.addControlListener(new ControlAdapter() { public void controlResized(ControlEvent e) { label.setBounds (shell.getClientArea ()); } });
El siguiente fragmento de código utiliza un diseño para obtener el mismo efecto:
Display display = new Display (); Shell shell = new Shell (display); Label label = new Label (shell, SWT.CENTER); shell.setLayout(new FillLayout());
Incluso en este sencillo ejemplo, el hecho de utilizar un diseño reduce el código de la aplicación. En el caso de diseños más complejos, la simplificación es mucho mayor.
SWT proporciona cuatro clases de diseño por omisión, que se pueden usar en numerosas situaciones.