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
Et la page html simple qui fonctionne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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(); } }
Maintenant quand j'essaie de mettre du php ça pars complétement en sucette :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
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é...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Need help please :p
Partager