Intégration d'applet en php
Bonjour, voilà je souhaite faire une animation en java, qui fait défiler les images quand on clic sur les boutons suivant ou précédents. J'ai donc une classe java et une page web qui donne en paramètre les images à l'applet. Quand je suis en html tout fonctionne.
J'ai essayé de faire passer les paramètres avec une base de donnée donc intégrer mon apllet dans du php et là plus rien ne marche, j'ai essayé avec la balise <applet> et la balise <object>, aucune différence...
Je vous met les codes ci-dessous, si ça peut aider quelqu'un à m'aider :p
Code:
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();
}
} |
Et la page html simple qui fonctionne :
Code:
1 2 3 4 5 6 7 8 9 10 11
| <html>
<head>
<title> Applet pour afficher une image </title>
</head>
<body>
<applet codebase = "file:///C:\Users\Yoan\Documents\test" code="Portfolio" width="350" height="350">
<param name = "nbImages" value = "1">
<param name = "image1" value = "upload/artgun.jpg">
</applet>
</body>
</html> |
Maintenant quand j'essaie de mettre du php ça pars complétement en sucette :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <html>
<head>
<title> Applet pour afficher une image </title>
</head>
<body>
<?php
echo "<applet codebase = \"file:///C:\Users\Yoan\Documents\test\" code = \"Portfolio\" width = \"350\" height = \"350\">
<param name = \"nbImages\" value = \"1\">
<param name = \"image1\" value = \"upload/artgun.jpg\">
</applet>";
?>
</body>
</html> |
Il n'y a pourtant pas beaucoup de différence, est ce qu'il y a une balise spéciale pour intégrer un applet en php ? J'ai déjà tester avec <object> mais peut-être que je l'ai mal utilisé...
Need help please :p