1 2 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