Exécution d'une applet dans une page web
bonjour,
J'ai crée le code d'une applet dans une classe nommée FirstApplet.
Ensuite, j'ai crée un fichier .html nommé FirstApplet.html ( dans le même projet que celui où j'ai crée le fichier FirstApplet.java)dans lequel je fais appel à la fonction doJavascript() de la classe FirstApplet .
Cet appel est provoqué après un click sur un bouton de la page FirstApplet.html sur lequel est écrit "lancer la méthode de l'applet".
L'appel de cette fonction permet de voir en console le message
"Méthode appelée par javascript ! " et de voir sur le label de l'applet le nombre de fois que l'on a cliqué sur le bouton de l'applet.
Mon problème est qu'au niveau de la page html je ne vois que le bouton sur lequle est ecrit "lancer la méthode de l'applet" mais rien ne se passe lorsque je clique dessus.
Pouvez-vous m'expliquer pourquoi?
Je vous en remercie beaucoup.
Voici le code de le classe FirstApplet et celui de la page .html
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
|
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JLabel;
public class FirstApplet extends JApplet{
protected JLabel label ;
private JButton bouton ;
protected int count = 0;
/**
* Méthode d'initialisation de l'applet
* C'est cette méthode qui fait office de constructeur
*/
public void init(){
this.setSize(300, 80);
label = new JLabel();
bouton = new JButton("Cliquez");
count = 0;
//On centre le texte du JLabel et on écrit en bleu...
label.setHorizontalAlignment(JLabel.CENTER);
//C'est plus joli.
label.setForeground(Color.blue);
System.out.println("Paramètre passé via la balise <param> : " + this.getParameter("message"));
this.bouton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
label.setText("Vous avez cliqué " + (++count) + " fois sur le bouton");
}
});
//On ajoute nos composants
this.getContentPane().add(bouton, BorderLayout.SOUTH);
this.getContentPane().add(label, BorderLayout.NORTH);
//Et le tour est joué !
}
/**
* Méthode utilisée par Javascript pour mettre à jour
* Celle-ci doit être public afin que Javascript puisse y avoir accès
* Le JLabel
*/
public void doJavascript(){
System.out.println("Méthode appelée par javascript ! ");
label.setText("Vous avez cliqué " + (++count) + " fois sur le bouton");
}
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
<html>
<body style="margin:auto;">
<div style="width:100%;text-align:center;background-color:#aef15b;"> </div>
<div style="width:100%;text-align:center;background-color:#aef15b;">
<input type="button" value="Lancer la méthode de l'applet" onClick="document.applets['first'].doJavascript();"/>
</div>
<div style="width:100%;text-align:center;background-color:#aef15b;"> </div>
<div style="width:320px;margin:auto;margin-top:20px;border:5px solid black">
<applet codebase="bin/" code="FirstApplet.class" height="80" width="300" hspace="10" vspace="10" name="first" id="firstApplet">
<param name="message" value="Message pour les ZérOs">
</applet>
</div>
</body>
</html> |
plugin.jar et execution d'une applet
Merci de ton conseil.
pour répondre à ta question, je travaille avec la version de jdk jdk1.6.0_03
Je suis donc allé à cet endroit
C:\Program Files\Java\jdk1.6.0_03\jre\libet ai copié le fichier pmlugin.jar pour le placer dans le repertoire bin où se trouve le fichier firstapplet.class.
Cela ne fonctionne toujours pas.
Je pense que cela peut également provenir de firefox qui n'accepte pas les applet java.
J'ai lu que pour permettre de les lire il faut aller dans menu
dans les options internet : menu Outils > Options dans l'onglet Contenu : cochez "autoriser le Java", sous Firefox.
Dans le menu proposé , je ne vois que menu outils( je ne comprends pas ce que signifie "options internet)+ options : quand je clique sur l'onglet "Contenu" je ne vois pas de possibilite de cliquer"autorise le java".
Si tu as une solution à me proposer, je suis preneuse!
Cordialement.
new_wave