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 :

Probleme actionListener d'un JPanel lié à l'applet


Sujet :

Applets Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Probleme actionListener d'un JPanel lié à l'applet
    Salut tout le monde,

    je suis en train de faire une applet et elle se construit de la forme suivante:

    1- une classe "laser" qui est ma classe Applet elle hérite de JApplet
    2-six classes panneaux "panneaunord","panneausud","panneauest","panneaucentre","panneauouest" et "panneauresultat"

    3-dans ma classe "laser" je place mes cinq panneaux avec un layout

    4-dans chaque classe panneau j'utilise une méthode paint dont je me sers pour dessiner diverses choses

    5-en particulier dans la classe panneau ouest il y a un JButton qui des que l'on clique dessus doit effacer le panneau central pour le remplacer par le panneau resultat



    Je n'ai pas trouvé d'autre moyen que de mettre l'actionListener dans la classe laser de cette manière là dans la méthode init():

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    po.jb.addActionListener(new ActionListener()
    //po est la variable de panneauouest
    		{public void actionPerformed(ActionEvent evt)
    		    {
    		    remove(pc);//on enlève le panneau central pour pouvoir le remplacer
                        add(pr,BorderLayout.CENTER);//on met le panneauresultat
                        validate();
                        repaint();
     
     
    		    }
    		});

    Mais là un problème apparait , pas de souci pour la suppression du panneaucentre et son remplacement par la panneauresultat.Seulement une boucle se met en place.

    En effet j'ai utiliser un System.out.println("ok") dans une des methodes paint() de mes classes panneaux et je me suis rendu compte que ça boucle une fois que j'ai appuyé sur le bouton.

    J'ai tout testé et ça vient du repaint et du validate de l'écouteur d'événement.



    Avez vous une alternative?

    Y a-t-il une autre manière d'accède a partir de la classe laser au éléments de mes JPanel?

    Je travaille sous NETBEANS.

    PJ: mon workspace

    Merci d'avance

    Cirilio27
    Fichiers attachés Fichiers attachés

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    le validate suffit, pas besoin d'un appel à repaint. Est-ce que tes méthodes paint font autre chose que dessiner (donc manipuler le Graphics) dans leur code?

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    je note aussi

    - il n'y a de message que pour le panneau résultat, met un message sur un autre panneau, histoire d'etre sur que c'est pas simplement la jvm qui doit souvent redessiner le panneau
    - tu fais tes calcul dans le paint et / ou le paintComponent. Les méthodes de dessins doivent etre rapide, elle peuvent etre appelées plusieurs fois par second. Si je déplace une fenetre devant l'applet, il peut y avoir plus de 200 appel en 2 secondes!
    - utilise paintComponent plutot que paint() quand tu fais du dessin custom

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Bon tchize comme tu me l'as conseillé j'ai mis un autre system.out.println() dans une autre classe panneau et il s'affiche aussi un nombre enorme de fois.

    Ensuite j'utilise bien paintComponent dans chaque classe panneau et juste paint dans la classe laser pour afficher une image à l'initialisation de l'applet.

    Je comprends pas d'où vient le problème.

    J'ai enlevé le repaint, tu as raison ça marche aussi mais je trouve pas la solution.

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    pas de solution a chercher. La jvm estime que tes composant doivent se redessiner, alors elle les redessine.

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

Discussions similaires

  1. Probleme image de fond JPanel
    Par Aurel_ dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 24/05/2007, 15h06
  2. [Layout] Probleme pour ajuster un JPanel particulier
    Par jlassiramzy dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 11/01/2007, 18h24
  3. Gestion des changement de JPanel dans une applet
    Par le Daoud dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 26/06/2006, 14h32
  4. probleme persitance d'un JPanel
    Par Tempotpo dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 16/02/2006, 13h22
  5. [Swing]probleme pour changer de JPanel
    Par mereyj dans le forum Composants
    Réponses: 8
    Dernier message: 19/06/2005, 12h55

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