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 :

[JList] Sélection inverse


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2009
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 107
    Par défaut [JList] Sélection inverse
    Bonjour,

    Dans une Applet Java, j'ai une JList à partir de laquelle je récupère les indices des éléments sélectionnés (via la variable "indices") après clic sur un bouton "valider".
    Jusque-là, pas de problème.

    Voici le code actuel de l'Applet concerné par cette JList :

    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
     
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;  
     
     
    public class Selection extends JApplet implements ActionListener  {
     
        int[] indices;
     
        public void start()
        {
        ...
     
    	int LoopSize = 10;
    	String[] ElementsList = new String[LoopSize];
    	for (int i = 0; i < LoopSize; i++) 
    	{
    		ElementsList[i] = "Element " + i;
    	}
     
     
     
    	FinalElements = new JList(ElementsList);
     
        ...
        }
     
     
        public void actionPerformed (ActionEvent ae) 
        {
     
    	Object  source=ae.getSource();
     
     
    	if  (source==Valid)
    	{	 			 	
    		indices = FinalElements.getSelectedIndices();
            }
        ...
        }
     
    }

    Mais pour les besoins d'un développement futur, je souhaiterais uniquement récupérer les indices des éléments non-sélectionnés. Est-ce possible?

    Je vous remercie d'avance pour votre aide.

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Citation Envoyé par dev197 Voir le message
    Mais pour les besoins d'un développement futur, je souhaiterais uniquement récupérer les indices des éléments non-sélectionnés. Est-ce possible?
    Evidemment oui. Mais tu ne donnes pas assez de code pour qu'on puisse t'aiguiller.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre confirmé
    Inscrit en
    Août 2009
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 107
    Par défaut
    En fait, il faudrait pouvoir récupérer dans un tableau d'entiers similaire à "indices" (ex : "indicesNonSelectionnes") les indices des éléments non-sélectionnés.

    Le reste du code n'est pas relatif à la JList donc ce ne sera pas forcément utile pour la sélection inverse...

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Citation Envoyé par dev197 Voir le message
    Le reste du code n'est pas relatif à la JList donc ce ne sera pas forcément utile pour la sélection inverse...
    Je ne vois pas ce qu'il y a de compliqué, ou alors je n'ai pas compris ton problème....
    Tu vas parcourir la JList en entier. Pour chaque indice, s'il n'est pas dans le tableau des indices sélectionnés, alors tu peux le ranger dans la liste des indices non sélectionnés.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  5. #5
    Membre confirmé
    Inscrit en
    Août 2009
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 107
    Par défaut
    Ton idée est bonne, j'ai eu la même également...

    Cependant, après sélection des attributs souhaités, l'exception suivante survient : "Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException".

    Voici le code :

    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
     
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;  
     
     
    public class Selection extends JApplet implements ActionListener  {
     
        int[] indices;
        int[] indicesTemp;
     
        public void start()
        {
        ...
     
    	int LoopSize = 10;
    	String[] ElementsList = new String[LoopSize];
    	for (int i = 0; i < LoopSize; i++) 
    	{
    		ElementsList[i] = "Element " + i;
    	}
     
     
     
    	FinalElements = new JList(ElementsList);
     
        ...
        }
     
     
        public void actionPerformed (ActionEvent ae) 
        {
     
    	Object  source=ae.getSource();
     
     
    	if  (source==Valid)
    	{	 			 	
    		indices = FinalElements.getSelectedIndices();
     
    		for (int i=0; i<LoopSize;i++)
    		{
       			 for (int j=0;j<indices.length;j++)
        			 {
    				 if (i != indices[j])
    				 {
    	 			       indicesTemp[i] = i;
    				 }
       			 }
    		}
     
            }
        ...
        }
     
    }
    Aurais-je dû initialiser au préalable la variable "indicesTemp"? Si tel est le cas, j'ai déjà essayé mais sans succès...

  6. #6
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    J'imagine que "indicesTemp" n'est pas déclaré ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

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

Discussions similaires

  1. [JList]sélection d'un élément impossible
    Par Ahellix dans le forum Composants
    Réponses: 3
    Dernier message: 17/10/2007, 18h14
  2. Requette de sélection inversée
    Par Destiny dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/05/2007, 09h03
  3. [JList] Sélection obligatoire
    Par soad dans le forum Composants
    Réponses: 1
    Dernier message: 06/05/2006, 11h49
  4. [JList] sélection de la valeur à un indice quelconque
    Par The Wretched dans le forum Composants
    Réponses: 2
    Dernier message: 24/03/2005, 09h31
  5. [JList] Sélection au clavier
    Par debdev dans le forum Composants
    Réponses: 2
    Dernier message: 11/03/2005, 17h41

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