<pre>
import java.awt.*;
import java.applet.*;

public class layoutDemo extends Applet {

	TextField noSelect;
	List liste;
	
	public void init() {
		// cree 3 cases de meme taille horizontalement
		setLayout(new GridLayout(1,3,10,0));

		// cree les 3 panneaux
		Panel panContr = new Panel();
		Panel panSelec = new Panel();
		Panel panNumer = new Panel();

		panContr.add(new Label("Compose le : "));
		noSelect = new TextField(15); // nouveau champ texte
		panContr.add(noSelect); // insere le champ
		panContr.add(new Button("Compose !"));
		panContr.add(new Button("Efface"));
		add(panContr); // ajoute le panneau dans l'applet
		
		// change la mise en page
		panSelec.setLayout(new BorderLayout());
		panSelec.add("North",new Label("Selection abregee"));
		liste = new List(5,false);
		liste.addItem("premier"); // ajoute des elements
		liste.addItem("deuxieme");// dans la liste
		liste.addItem("troisieme");
		liste.addItem("quatrieme");
		liste.addItem("cinquieme");
		liste.addItem("sixieme");
		liste.addItem("septieme");
		liste.addItem("avant-dernier");
		liste.addItem("dernier");
		panSelec.add("Center",liste); // au centre du panneau
		panSelec.add("South",new Button("Copie"));
		add(panSelec);

		// cree une grille de 4x3 cases
		panNumer.setLayout(new GridLayout(4,3));
		for (int num = 1;num <= 9;num++)
			panNumer.add(new Button(Integer.toString(num)));
		panNumer.add(new Button("*"));
		panNumer.add(new Button("0"));
		panNumer.add(new Button("#"));
		add(panNumer);
	}
	
	public boolean action(Event evt,Object arg) {
		if (evt.target instanceof Button) // pression sur
			handleButton((String)arg);    // un bouton
		else if (evt.target instanceof TextField)
			handleText(evt.target);       // champ texte
		return true;
	}

	private void handleText(TextField tf) {
		if (tf == noSelect)
			compose();
	}
	
	private void handleButton(String label) {
		if (label.equals("Copie"))
			noSelect.setText(liste.getSelectedItem());
		else if (label.equals("Efface"))
			noSelect.setText("");
		else if (label.equals("Compose !"))
			compose();
		else
			noSelect.setText(noSelect.getText()+label);
	}

	private void compose() {
		// a remplacer par une methode plus utile
		System.out.println("compose le "+noSelect.getText());
	}
	
}
