Exercices

Une disposition simple

Un formulaire question-réponse simple:

Réaliser en AWT un formulaire comprenant un champ de saisie (TextField utiliser plutôt un constructeur du type new TextField(40)), un bouton (Button) et une plage de texte pour afficher la réponse à la question (utiliser un TextArea par exemple par new TextArea(10,60)).

Aspect possible:

formulaire

-l’objectif sera plus tard d’afficher une réponse à une question (soit quand on a appuyé sur le bouton , soit quand on a tapé un <retour chariot> dans le champs de saisie)-.

Pour tester votre disposition créer un code (main ou JShell) avec un objet Frame , mettre le formulaire et faire des essais de redimensionnement de la fenêtre).

Attention: à ce stade vous ne pourrez pas "arréter" proprement le test (vous êtes obligés de "tuer" le processus). (Sous votre IDE il doit y avoir un bouton ou une croix rouge qui accompagne la console)

Une proposition de solution ICI le main de test est ici inclus dans le code (il faudrait le mettre dans une classe distincte où faire directement un test avec JShell).

Exemples

Une disposition simple

package org.labs.ihm;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Frame;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.TextField;


public class Ecran1 extends Panel {
    private TextArea affichage = new TextArea(10,60);
    private Label invite = new Label("Question : ");
    private TextField saisie = new TextField(40);
    private Button bouton = new Button("OK");

    public Ecran1() {
        this.setLayout(new BorderLayout(3,3 ));
        Panel pInvite = new Panel(new BorderLayout());
        // BLOC (pour mieux séparer les zones du code!)
        {// gestion du Panel des invites
            pInvite.add(invite,BorderLayout.WEST);
            pInvite.add(saisie,BorderLayout.CENTER);
            // pourrait être dans un Panel intermédiaire
            pInvite.add(bouton, BorderLayout.SOUTH);
        }
        this.add(pInvite, BorderLayout.NORTH);
        this.add(affichage, BorderLayout.CENTER);
    }

    public static void main(String[] args) {
                Frame fen = new Frame("disposition");
                fen.add(new Ecran1());
                fen.pack() ;
                fen.setVisible(true);
    }

}