IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Applets Java Discussion :

impossible d integrer un appel javascript utilisant mon applet dans le html.


Sujet :

Applets Java

  1. #1
    Membre actif Avatar de turican2
    Profil pro
    Inscrit en
    Août 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2006
    Messages : 257
    Points : 239
    Points
    239
    Par défaut impossible d integrer un appel javascript utilisant mon applet dans le html.
    bonjour, j'ai vu ce ce sujet a été déjà lancé sans pour autant obtenir de réponse alors je poste à mon tour en espérant que quelqu'un m'explique ce qui se passe.

    voici mon applet:
    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
     
    /*les imports sont au dessus enlever pour lisibilité*/
    public class FirstApplet extends JApplet {
    private JLabel label = new JLabel();
    	private JButton bouton = new JButton("Cliquez");
    	private int count = 0;
     
    	/**
             * Méthode d'initialisation de l'applet
             * C'est cette méthode qui fait office de constructeur
             */
        @Override
    	public void init(){
    		this.setSize(300, 80);
     
    		System.out.println("Paramètre passé via la balise <param> : " + this.getParameter("message"));
    		//On centre le texte du JLabel et on écrit en bleu...
    		label.setHorizontalAlignment(JLabel.CENTER);
    		//C'est plus zoli.
    		label.setForeground(Color.blue);
     
    		//Allez, une classe anonyme... Just for the fun ;)
    		this.bouton.addActionListener(new ActionListener(){
                @Override
    			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(){
                   JOptionPane.showMessageDialog(null,"alert");
    		System.out.println("Méthode appelée par javascript ! ");
    		label.setText("Vous avez cliqué " + (++count) + " fois sur le bouton");
    	}
     
    }
    le html
    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
     
    <html>
    	<body style="margin:auto;">
    		<div style="width:100%;text-align:center;background-color:#aef15b;">&nbsp;</div>
    		<div style="width:100%;text-align:center;background-color:#aef15b;">&nbsp;</div>
     
    		<div style="width:320px;margin:auto;margin-top:20px;border:5px solid black">
    			<applet codebase="class/" code="FirstApplet.class" height="80" width="300" hspace="10" vspace="10" name="first" id="firstApplet"></applet>
    		</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>
     
    		<script type="text/javascript">
    		 document.write("n applet ont été trouvés: " + document.applets.length +" applets Java")
    		</script>
    	</body>
    </html>
    Mon applet se charge bien et je suis en mesure d'appuyer sur le bouton, le résultat est celui escompté.

    En revanche, mon bouton html appelant une fonction dans l'applet ne fonctionne pas. J'obtiens ce message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.applets.first.doJavascript is not a function
    voyez-vous où se situe mon erreur?

    merci

  2. #2
    Membre actif Avatar de turican2
    Profil pro
    Inscrit en
    Août 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2006
    Messages : 257
    Points : 239
    Points
    239
    Par défaut
    Strange, le problème s'est résolu de lui même sans avoir changé une seul ligne de code.

    phase1: hier:
    J'ai écrit mon applet que j'ai compilé (j'avais effectivement une erreur de majuscule dans ma fonction). J'ai récupéré "FirstApplet.class" ainsi que "FirstApplet$1.class" que j'ai copié dans mon répertoire apache. J'obtenais le message d'erreur.

    phase2: hier:
    Je me suis rendu compte de l'erreur j'ai donc changé le code de mon applet et je l'ai recompilé puis recopié "FirstApplet.class" ainsi que "FirstApplet$1.class" dans mon répertoire apache en écrasant les anciens fichiers. J'obtenais le même message d'erreur d'où le message sur le forum.

    phase3: ce matin:
    tout marche sans rien avoir fait.

    Question: comment Apache gère t'il les applets? Si l'applet était en cours d'utilisation comment ai je pu réécrire par dessus? bref, ultra strange car je m'étais vraiment assuré d'avoir fermé puis ré ouvert l'ensemble de mes firefox.

  3. #3
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Si t'as pas fermé ton navigateur, il y a des chance qu'il n'aie pas redémarré l'applet

    La jvm, une fois démarré dans le browser, associe un classloader par "codebase". Comme après changement ton codebase restait le meme, la jvm a réutilisé le classloader. Comme les classe étaient chargées dans le classloader, la jvm les a réutilisé. Donc, bonne pratique en développement, soit tu rédémrre bien à chaque fois le browser, soit tu utilise l'application appletviewer pour tester tes applet (mais ca gère pas le javascript :p)

  4. #4
    Membre actif Avatar de turican2
    Profil pro
    Inscrit en
    Août 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2006
    Messages : 257
    Points : 239
    Points
    239
    Par défaut
    merci bien pour cette information, ça m'aidera à avancer de façon surement plus rapide ... à ma décharge, l'ensemble des tutoriels pour débutant éludent complètement la partie architecture de Java ce qui fait qu'en cas de souci c'est immédiatement la falaise à grimper..

    comme disait le slogan, "Java c'est plus fort que toi"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. C#, utiliser mon logiciel dans windows
    Par davaub dans le forum C#
    Réponses: 4
    Dernier message: 20/04/2011, 16h20
  2. appeler une applet dans du html
    Par nouraty dans le forum Applets
    Réponses: 13
    Dernier message: 05/12/2010, 22h39
  3. [DOM][JAVASCRIPT]Utilisation de l'xml avec html
    Par Hello_World dans le forum APIs
    Réponses: 9
    Dernier message: 14/10/2010, 15h37
  4. [Applet]Utiliser plusieurs Applet dans une même classe
    Par BRAUKRIS dans le forum Applets
    Réponses: 5
    Dernier message: 11/06/2004, 16h27
  5. [Struts][javascript]Probleme de 'id' dans un <html:hidden
    Par FreshVic dans le forum Struts 1
    Réponses: 5
    Dernier message: 11/02/2004, 11h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo