Corrigé du TD 7 : interfaces

Exercices

import javax.swing.*;
import java.awt.*;
 
interface SaitSeDessiner
{
    public void dessiner(Graphics g);
}
 
class Curseur implements SaitSeDessiner
{
    public void dessiner(Graphics g){/* ... */}
}
 
abstract class Forme implements SaitSeDessiner
{
}
 
class Cercle extends Forme
{
    public void dessiner(Graphics g){/* ... */}
}
 
class Carre extends Forme
{
    public void dessiner(Graphics g){/* ... */}
}
 
class InterfaceTest extends JApplet
{
    SaitSeDessiner objetsADessiner[];
    public void init()
    {
        objetsADessiner=new SaitSeDessiner[3];
        objetsADessiner[0]=new Cercle();
        objetsADessiner[1]=new Carre();
        objetsADessiner[2]=new Curseur();
    }
    public void paint(Graphics g)
    {
        for(int i=0;i<objetsADessiner.length;i++)
        {
            objetsADessiner[i].dessiner(g);
        }
    }
}

ActionListener

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
 
// Deux  nouveautés ici:
// 1 : Création d'une fenêtre SANS appletviewer (application)
// 2 : Créations de boutons
 
class ReactionButton implements ActionListener
{
    public void actionPerformed(ActionEvent e)
    {
        System.out.println("bouton!");
    }
}
 
 
public class ExempleBoutonsCorrige extends JApplet
{
    ReactionButton reactionButton=new ReactionButton();
    // comme d'habitude, la fonction init ...
    // (mais cette fois c'est nous qui allons l'appeler directement)
    public void init()
    {
        // demander a l'applet ou est-ce qu'on peut ajouter des
        // éléments graphiques
        Container cp = getContentPane();
        // type rangement pour les boutons qui vont être crées
        cp.setLayout(new FlowLayout());
 
        // creation de 2 bouttons
        JButton b1 = new JButton("Bouton 1");
        JButton b2 = new JButton("Bouton 2");
 
        // ajout des deux bouttons a la fenetre
        cp.add(b1);
        cp.add(b2);
 
 
        b1.addActionListener(reactionButton);
    }
    // Cette fois il y a un "main" dans un Applet!!
    public static void main(String[] args)
    {
        // ici on fait une partie des choses qui se
        // passaient automatiquement lorsqu'on lance appletviewer
 
        // on crée l'objet de type JApplet
        JApplet applet = new ExempleBoutonsCorrige();
        // on crée une fenêtre principale
        JFrame  frame  = new JFrame("Titre de la fenetre");
        // Pour fermer l'application
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        // on ajoute notre affichage dans la fenêtre principale
        frame.getContentPane().add(applet);
        // taille de la fenêtre principale
        frame.setSize(200,200);
        // appel de notre méthode d'initialisation
        applet.init();
        // démarrage de notre application
        applet.start();
        // apparition de la fenêtre a l'écran
        frame.setVisible(true);
    }
}

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>