esperanto
interlingua
 

Mise en page (1)

Il serait plus élégant de mettre les deux zones de texte sous les carrés colorés, et de mettre une couleur en arrière-plan. Nous allons voir comment nous pouvons faire.

setBackground()

En ce qui concerne la couleur de fond, il suffit d'employer la méthode setBackground() dans l'init() de l'applet pour définir une couleur d'arrière-plan.

On passe en paramètre à cette méthode un objet Color, comme nous l'avons vu avec la méthode setColor() à l'étape 2

Panel

Au lieu de dessiner les zones de texte directement sur l'applet, nous allons les placer sur un panneau (un objet Panel), en fait une sous-zone de l'applet, que nous pourrons ensuite placer sur la zone de l'applet.

Pour instancier un objet Panel, il suffit de le déclarer comme ceci :

Panel MonPanneau = new Panel();

Ensuite on ajoute quelque chose sur ce panneau, par exemple une zone de texte :

T = new TextField(10);
MonPanneau.add(T);

Et de la même façon l'on peut choisir la couleur de fond du panneau :

MonPanneau.setBackground(Color.white);

Il faut enfin ajouter le panneau à la zone de l'applet :

add(MonPanneau);

Voici ce que cela donnerait :

import java.applet.*;
import java.awt.*;

public class applet19 extends Applet
{
TextField T=new TextField(10);
Panel MonPanneau = new Panel();

public void init()
   {
   MonPanneau.add(T);
   MonPanneau.setBackground(Color.white);
   add(MonPanneau);
   }
}

 

Et voici le résultat :

Le code de l'applet prêt à l'emploi

FlowLayout()

La mise en page proprement dite se fait avec plusieurs méthodes. La plus simple, celle qui est employée par défaut ci-dessus, est la méthode FlowLayout() qui place les éléments au centre de l'applet ou des panneaux, les uns à côté des autres.

L'intérêt de cette méthode est qu'elle permet de préciser trois paramètres : l'alignement (FlowLayout.LEFT, FlowLayout.RIGHT ou FlowLayout.CENTER), l'espace horizontal et l'espace vertical entre les éléments.

Pour définir une mise en page de ce type pour un composant (la zone de l'applet ou un panneau, par exemple), il faut passer à ce composant la méthode FlowLayout() par l'intermédiaire de la méthode setLayout(), comme ceci :

MonPanneau.setLayout(new FlowLayout(FlowLayout.RIGHT, 10,0));

Ce code signifie que les éléments placés sur MonPanneau seront alignés à droite et espacés de 10 pixels.

Par exemple, pour placer deux zones de texte dans un panneau :

import java.applet.*;
import java.awt.*;

public class applet20 extends Applet
{
TextField T=new TextField(5);
TextField U=new TextField(5);
Panel MonPanneau = new Panel();

public void init()
   {
   MonPanneau.setLayout(new FlowLayout(FlowLayout.RIGHT, 5, 0));
   MonPanneau.add(T);
   MonPanneau.add(U);
   MonPanneau.setBackground(Color.white);
   add(MonPanneau);
   }
}

 

Et voici le résultat :

Le code de l'applet prêt à l'emploi

Vous voyez que la constante FlowLayout.RIGHT ne change pas grand chose à l'alignement à l'intérieur du panneau, parce que celui-ci est automatiquement dimensionné autour des éléments qu'il contient : ces éléments sont bel et bien alignés à droite, mais le panneau lui-même est centré sur la zone de l'applet (méthode FlowLayout par défaut), ce qui fait qu'on ne remarque rien. L'applet suivante sera plus évidente à cet égard.