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

Composants Java Discussion :

Probleme avec les ListSelectionEvent, ils ne fontionnent pas!


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 100
    Par défaut Probleme avec les ListSelectionEvent, ils ne fontionnent pas!
    Bonjour tous le monde!

    Enfin plutot bonsoir.

    J'ai un travail à rendre pour demain qui me demande l'utilisation de ListSelectionEvent d'une JList.

    Mais le problème, c'est que l'event ne marche pas, j'ai beau cherché, je ne trouve pas! J'aurais besoin d'avis et de corrections sur mon code svp.

    Merci d'avance!

    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
     
     
    public class test extends JInternalFrame implements ActionListener, ListSelectionListener {
    	private JSplitPane panelHorizontal = new JSplitPane();
    	private GFenetre Fenetre;
    	private Mutilisateur utilisateur;
    	private Mcompte compte;
    	private GLeftFrame listeCompte;
    	private GCentreFrame listeoperations;
     
    	public test(GFenetre fenAppli, Mutilisateur monUser) {
    		this.Fenetre = fenAppli;
    		this.utilisateur = monUser;
     
    		JInternalFrame FenetrePrincipale = new JInternalFrame();
    		this.setTitle("Zone de travail");
    		this.setSize(600,500);
    		this.setMaximizable(true);
    		this.setIconifiable(true);
    		this.setClosable(true);
    		this.setVisible(true);
     
     
    		Fenetre.setLayout(new BorderLayout());
    		this.add(panelHorizontal,BorderLayout.NORTH);
    		this.listeCompte = new GLeftFrame(this);
    		this.panelHorizontal.setLeftComponent(listeCompte);
    		this.listeCompte.getJlistCompte().addListSelectionListener(new ListSelectionListener() {
    		public void valueChanged(ListSelectionEvent e) {rechargerzone(e);}}); 
     
    		this.listeoperations = new GCentreFrame(this);
    		this.panelHorizontal.setRightComponent(listeoperations);
     
    		this.setVisible(true);
    	}
     
    	public void rechargerzone(ListSelectionEvent e) 
    	{
    			System.out.println("La valeur change");
    			this.rechargerZone(this.utilisateur.comptes.get(this.listeCompte.getJlistCompte().getSelectedIndex()).getId_compte());	
    			System.out.println("la foncion rechargé est passé, de retour chez nous");
    	}
     
     
    	public void actionPerformed (ActionEvent evt)
    	{
    		if(evt.getSource() == this.listeCompte.getBAjouter())
    		{
    			System.out.println("On veut ajouter un compte");
    		}
    	}
     
    	public Mutilisateur getUtilisateur()
    	{
    		return this.utilisateur;
    	}
     
    	public Mcompte getCompte()
    	{
    		return this.compte;
    	}
     
    	private void rechargerZone(int indiceCompte)
    	{
    		System.out.println("A lintérieur de la fonction rechargerZone");
    		this.listeoperations = new GCentreFrame(indiceCompte, this);
    		this.panelHorizontal.setRightComponent(this.listeoperations);
    		this.panelHorizontal.setLeftComponent(this.listeCompte);
    	}
     
    }
    Aucun texte ne s'affiche dans la console, il ne passe donc pas!

    Je voudrais donc une solution, si possible pour résoudre ce **** de problème! En plus, j'avoue que c'est assez urgent!


    Merci de votre patience!

  2. #2
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Bonjour, ton code ne compile pas car ta classe test implémente ListSelectionListener mais ne déclare pas la méthode valueChanged. Je te conseille d'ajouter valueChanged dans ta classe test, et de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.listeCompte.getJlistCompte().addListSelectionListener(this);

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 100
    Par défaut
    Merci de ta réponse, mais j'avais déja essayé, et ça ne marchait pas!

    Je viens même de réessayer.

    Je te montre le bout de code correspondant.

    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
    	public test(GFenetre fenAppli, Mutilisateur monUser) {
    		this.Fenetre = fenAppli;
    		this.utilisateur = monUser;
     
    		JInternalFrame FenetrePrincipale = new JInternalFrame();
    		this.setTitle("Zone de travail");
    		this.setSize(600,500);
    		this.setMaximizable(true);
    		this.setIconifiable(true);
    		this.setClosable(true);
    		this.setVisible(true);
     
     
    		Fenetre.setLayout(new BorderLayout());
    		this.add(panelHorizontal,BorderLayout.NORTH);
    		this.listeCompte = new GLeftFrame(this);
    		this.listeCompte.getJlistCompte().addListSelectionListener(this);
     
    		this.panelHorizontal.setLeftComponent(listeCompte);
     
     
    		this.listeoperations = new GCentreFrame(this);
    		this.panelHorizontal.setRightComponent(listeoperations);
     
    		this.setVisible(true);
    	}
     
     
    	public void valueChanged(ListSelectionEvent event) {
    		System.out.println("La valeur change");
    		this.rechargerZone(this.utilisateur.comptes.get(this.listeCompte.getJlistCompte().getSelectedIndex()).getId_compte());	
    		System.out.println("la foncion rechargé est passé, de retour chez nous");
    	  }


    Je te montre si tu veux la classe GLeftFrame. On sait jamais, peut etre que l'erreur est ici!

    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
    import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
     
    import javax.swing.JButton;
    import javax.swing.JComponent;
    import javax.swing.JList;
     
     
    public class GLeftFrame extends JComponent{
    	private test _MainFrame = null;
    	private JList _listeDecomptes = new JList();
    	private JButton _BModifierCompte = new JButton("Modifier");
    	private JButton _BSupprimerCompte = new JButton("Supprimer");
    	private JButton _BAjouterCompte = new JButton("Ajouter"); 
     
     
    	public GLeftFrame(test MainFrame)
    	{
    		System.out.println("On est dans le MainFrame");
    		this._MainFrame = MainFrame;
     
    		System.out.println("On va ajouter un SetLayout");
    		this._MainFrame.getUtilisateur().listerCompte(_MainFrame.getUtilisateur().getLogin());
     
    		System.out.println("On va ajoute la liste des comptes");
    		this.setLayout(new GridLayout(4,1));
    		this.add(this._listedescomptes());
    		this.add(this._BAjouterCompte);
    		this.add(this._BModifierCompte);
    		this.add(this._BSupprimerCompte);
    		System.out.println("On ajoute les éléments");
    	}
     
     
    	private JList _listedescomptes()
    	{
    		System.out.println("On arrive dans la JList liste des comptes");
     
    		String[] ListItems = new String[this._MainFrame.getUtilisateur().comptes.size()];
    		System.out.println("On donne la taille de compte finale: " +this._MainFrame.getUtilisateur().comptes.size());
    		System.out.println("²test");
    		for(int i=0;i<this._MainFrame.getUtilisateur().comptes.size();i++)
    		{ListItems[i] = String.valueOf(this._MainFrame.getUtilisateur().comptes.get(i).getId_compte() +this._MainFrame.getUtilisateur().comptes.get(i).getLib_compte());}
     
    		this._listeDecomptes = new JList(ListItems);
    		return this._listeDecomptes;
    	}
     
    	public void actionPerformed(ActionEvent evt)
    	{
    		if(evt.getSource()==this._BAjouterCompte){this.ajouterCompte();}
    		if (evt.getSource()==this._BModifierCompte){this.modifierCompte();}
    		if (evt.getSource()==this._BSupprimerCompte){};
     
    	}
     
    	public JList getJlistCompte()
    	{
    		return this._listedescomptes();
    	}
     
     
    	public void ajouterCompte()
    	{
    		System.out.println("Affichage de la fenetre pour ajouter un compte");
    	}
     
    	public void modifierCompte()
    	{
    		System.out.println("Affichage de la fenetre pour modifier un compte");
    	}
     
    	public void supprimerCompte(String login)
    	{
    		System.out.println("Affichage de la confirmation pour supprimer un compte");
    	}
     
    	public JButton getBAjouter()
    	{
    		return this._BAjouterCompte;
    	}
     
    	public JButton getBSupprimer()
    	{
    		return this._BSupprimerCompte;
    	}
     
    	public JButton getBModifier()
    	{
    		return this._BModifierCompte;
    	}
    }

  4. #4
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Avec ça tu ne passes pas dans valueChanged?

    ps : par convention les noms de classe commencent par une majuscule et les variables/attributs par des minuscules

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 100
    Par défaut
    Non il ne passe pas! Et je ne comprend pas pourquoi!!!

    Surtout que ca bloque tout le projet!

    P.S: En fait le code s'arrête à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.listeCompte.getJlistCompte().addListSelectionListener(this);

  6. #6
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Comment ça le code s'arrête? tu as une exception?
    Il faut dire précisémment ce qui se passe, sans quoi on ne peut pas t'aider.

Discussions similaires

  1. Réponses: 8
    Dernier message: 07/01/2008, 22h36
  2. Probleme avec les get/ let de ma classe : je ne comprends pas l'erreur
    Par EvaristeGaloisBis dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 22/07/2007, 12h05
  3. Réponses: 27
    Dernier message: 24/05/2007, 23h29
  4. PROBLEME AVEC LES REQUETES IS NULL / NOT EXISTS
    Par sylvaine dans le forum Langage SQL
    Réponses: 5
    Dernier message: 04/06/2004, 13h26
  5. probleme avec les processus
    Par saidi dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 05/02/2003, 00h18

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