Le meilleur moyen pour traiter le positionnement de simples widgets est souvent de redimensionner un module d'écoute d'événement. Cependant, il existe des schémas courants utilisés par les applications lors du placement des widgets. Ces schémas peuvent être structurés sous forme d'algorithmes de présentation qui peuvent être réutilisés par différentes applications.
SWT définit les présentations qui fournissent le positionnement et le dimensionnement des widgets enfants d'un composite. Les présentations sont des sous-classes de la classe abstraite Layout. Les présentations standard de SWT figurent dans le package org.eclipse.swt.layout.
Il y a quelques définitions générales à connaître lorsque vous redimensionnez et positionnez les widgets :
Ces concepts sont liés aux applications qu'une présentation soit ou non utilisée. Vous pouvez envisager une présentation comme moyen adéquat pour regrouper les fonctionnalités de redimensionnement à des fins de réutilisation.
D'autres concepts sont introduits par des présentations :
Reportez-vous à la section Understanding layouts in SWT pour obtenir d'autres données et illustrations sur ces concepts.
Le fragment de code ci-après illustre le cas d'une application utilisant un rappel de redimenssionnement pour fixer la taille d'un libellé à celle de son shell parent :
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 ()); } });
Le fragment suivant utilise une présentation pour parvenir au même effet :
Display display = new Display (); Shell shell = new Shell (display); Label label = new Label (shell, SWT.CENTER); shell.setLayout(new FillLayout());
Même dans le cas de ce simple exemple, l'utilisation d'une présentation réduit le code d'application. Pour des présentations plus complexes, la simplification est bien plus grande.
Le tableau suivant répertorie les présentations standard fournies par SWT.
Présentation |
Objectif |
---|---|
FillLayout | Présenter les contrôles sur une seule ligne ou colonne, les forçant à être tous de la même taille. |
FormLayout | Positionner les widgets enfants à l'aide de FormAttachments pour éventuellement configurer les bordures de gauche, d'en haut, de droit et d'en bas pour chaque widget enfant. |
GridLayout | Positionner les widgets enfants en ligne et en colonnes. |
RowLayout | Placer les widgets enfants dans des lignes horizontales ou dans des colonnes verticales. |