| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 
 | /*
 * Portfolio.java 22/04/2010 
 */
 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
/**
 * @author Evilrider
 * @version 1.0
 * Classe permettant d'afficher les images du portfolio
 * On récupère les informations via la page portfolio.php
 */
public class Portfolio extends JApplet implements ActionListener {
 
	/** Tableau qui contiendra les photos à afficher */
	private Image[] photos ;
 
	/** Panneau qui contiendra les boutons d'actions du portfolio */
	private JPanel panBtn;
 
	/** Panneau qui contiendra les images du portfolio */
	private JPanel panImg;
 
	/** Indice permettant de savoir quelle image on doit afficher */
	private int indice;
 
	/** Boutons d'actions permettant de faire défiler les images */
	private JButton btnSuivant;
	private JButton btnPrecedent;
 
 
	/** 
     * Méthode d'initialisation appelée quand le navigateur lancera l'applet
     */
    public void init() {
 
    	//On récupère la taille du tableau d'images
    	String nbImages = getParameter("nbImages");
 
    	//On convertit la chaîne de caractère en int
    	int nb_images = Integer.parseInt(nbImages);
 
    	//On définit un gestionnaire de mise en page pour l'applet
    	setLayout( new FlowLayout() );
 
    	//On définit la taille de l'applet
    	setSize(300, 325);
 
    	//On fixe la taille du tableau d'images
    	photos = new Image[nb_images];
 
    	//On enregistre la première photo
    	indice = 1;
 
    	while ( indice - 1 < nb_images ){
    		//On ajoute une image venant de la page Portfolio.php au tableau d'image
    		photos[indice - 1] = getImage( getCodeBase(), ""+getParameter("image"+indice));
    		indice++;
    	}
 
    	//On remet l'indice de parcours à 0 pour afficher la première image
    	indice = 0;
 
        //Initialisation des tableaux
        panBtn = new JPanel( new FlowLayout() );
        panImg = new JPanel( new FlowLayout() );
 
        //On définit la taille des tableaux
        panImg.setPreferredSize( new Dimension( 300, 225) );
        panBtn.setPreferredSize( new Dimension( 300, 100) );
 
        //Initialisation du tableau de bouton
        btnPrecedent = new JButton( "Précédent" );
        btnSuivant = new JButton("Suivant");
 
        //On ajoute un écouteur sur les boutons
        btnPrecedent.addActionListener(this);
        btnSuivant.addActionListener(this);
 
        //Ajout des boutons au tableau
        panBtn.add(btnPrecedent);
        panBtn.add(btnSuivant);
 
        //Ajout des tableaux à l'applet
        add(panImg);
        add(panBtn);
 
        //On rend l'applet visible
        setVisible(true);
    }
 
 
    /**
     * la méthode paint est appelée automatiquement par le navigateur
     * elle permet d'afficher les images contenues dans l'applet
     * @param g   cet objet encapsule le contexte graphique de l'applet
     */
    public void paint ( Graphics g ) {
    	//On fait un appel au super constructeur pour éviter les bugs
    	super.paint(g);
    	//On dessine la photo souhaitée
        g.drawImage ( photos[indice] , 0, 0, this ) ;
    }
 
	@Override
	public void actionPerformed(ActionEvent ev) {
		if ( ev.getSource() == btnPrecedent ){
			//On a cliquez sur précédent
			if ( indice == 0 ){
				//On est sur la première image, on veut afficher la dernière
				indice = photos.length - 1;
			} else {
				//On veut afficher l'image précédente
				indice --;
			}
		} else if ( ev.getSource() == btnSuivant ){
			//On a cliquez sur suivant
			if ( indice == photos.length - 1 ){
				//On est sur la dernière image, on veut afficher la première
				indice = 0;
			} else {
				//On veut afficher l'image suivante
				indice ++;
			}
		}
		//On affiche la nouvelle image
		repaint();
	}
} | 
Partager