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

AWT/Swing Java Discussion :

Lancer méthode classe interne


Sujet :

AWT/Swing Java

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 118
    Points : 102
    Points
    102
    Par défaut Lancer méthode classe interne
    Bonjour,

    Je développe un programme dans lequel il y a une JList. J'ai une classe interne qui s'occupe des événements de la JList. Je possède un bouton Supprimer qui n'est pas dans la classe interne.

    Alors ce que je voudrais, c'est que quand je clique sur une entrée de la JList, puis que je clique sur le bouton Supprimer, l'entrée soit supprimée, mais je ne sais pas comment faire.

    Voici la fonction de l'écouteur du bouton Supprimer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    private void ecouteurMenuSupprimer() {
        	HashMap itemsMenus = men.getItems();
            JMenuItem menuSupprimer = (JMenuItem)itemsMenus.get("Supprimer");
     
            menuSupprimer.setEnabled(false);
     
        	menuSupprimer.addActionListener ( new ActionListener() {	 
    	            public void actionPerformed (ActionEvent e) {
    	            	System.out.println("test");
    	            }
        	});
        }
    Voici la partie de la classe interne de la JList qui gère le clic sur juste une entrée :
    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
     
    		public void mouseClicked(MouseEvent e){
    			if(e.getClickCount() == 2 && e.getButton() == MouseEvent.BUTTON1){
    				 afficherEntree(e);
    			}
     
    			if(e.getClickCount() == 1 && e.getButton() == MouseEvent.BUTTON1) {
    				HashMap itemsMenus = men.getItems();
            		JMenuItem menuSupprimer = (JMenuItem)itemsMenus.get("Supprimer");
     
            		menuSupprimer.setEnabled(true);
     
            		ecouteurMenuSupprimer().actionPerformed(e);
     
    			}
    		}
    Suis-je clair ?


    Merci par avance
    carnibal

  2. #2
    Membre actif Avatar de g0up1l
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 341
    Points : 294
    Points
    294
    Par défaut
    Dans la méthode qui gère le click sur le bouton [supprimer], récupère l'item sélectionné dans ta JLIst et supprime-le. il y a une fonction membre de JList qui permet d'obtenir l'item couramment sélectionné.

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 118
    Points : 102
    Points
    102
    Par défaut
    Oui mais comment envoyer l'item sélectionné ( qui est récupéré par ma classe interne) dans ma méthode de la classe mère ?
    En fait, je ne comprend pas comment passer de ma classe interne à ma classe mère.

    Pouvez-vous m'expliquer comment faire techniquement ?

    Merci par avance

    carnibal

  4. #4
    Membre actif Avatar de g0up1l
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 341
    Points : 294
    Points
    294
    Par défaut
    C'est l'inverse, tu ne dois pas envoyer l'item sélectionné vers ta la classe mère mais au contraire atteindre l'item sélectionné à partir de ta classe mère.
    Une méthode basique consiste à récupérer l'évènement du bouton cliqué dans ta classe mère, ainsi tu pourra par la suite accéder à ta JLIst, récupérer l'item et le supprimer.
    Pour ça, ta classe mère doit implémenter l'interface ActionListener :
    http://java.sun.com/j2se/1.4.2/docs/...nListener.html

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 118
    Points : 102
    Points
    102
    Par défaut
    J'ai suivi ce que t'a dit et c'est nikel.

    Merci

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

Discussions similaires

  1. Explications sur le code (classe interne & méthode)
    Par vandeyy dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 04/04/2014, 18h07
  2. Accessibilité classe interne à une méthode
    Par oliv37 dans le forum Langage
    Réponses: 4
    Dernier message: 27/11/2012, 15h50
  3. [heritage] etendre une classe interne en dehors du package
    Par ChristopheH dans le forum Langage
    Réponses: 2
    Dernier message: 11/10/2004, 15h15
  4. [Débutant][Conception] Erreur avec une classe interne
    Par Devil Redneck dans le forum Général Java
    Réponses: 5
    Dernier message: 11/06/2004, 16h45
  5. [Thread] Erreur dans une classe interne
    Par totof2308 dans le forum Général Java
    Réponses: 5
    Dernier message: 03/06/2004, 09h15

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