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

Collection et Stream Java Discussion :

Parcourir et supprimer un objet dans une ArrayList


Sujet :

Collection et Stream Java

  1. #21
    Membre régulier
    Profil pro
    Ingénieur
    Inscrit en
    Janvier 2009
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Janvier 2009
    Messages : 209
    Points : 95
    Points
    95
    Par défaut
    voila l'exemple et l'erreur fourni !

    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
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.ArrayList;
    import java.util.ListIterator;
    import javax.swing.AbstractAction;
     
     
     
     
    public class ActionFrame extends AbstractAction implements ActionListener {
     
     
    	Frame f  ;
    	ArrayList<MonObjet> myArrayList = new ArrayList<MonObjet>();
    	ListIterator<MonObjet> listIterator = myArrayList.listIterator();
     
    	public ActionFrame(Frame frame) {
    		// TODO Auto-generated constructor stub
    		this.f = frame ; 
    	}
    	@Override
    	public void actionPerformed(ActionEvent arg0) {
    		// TODO Auto-generated method stub
    		Object source = arg0.getSource() ;
     
    		if(source==f.a){
     
     
    			String nom = f.nom.getText();
    		String age = String.valueOf(f.age.getText());
    			try {
    			MonObjet o = new MonObjet(nom, age);
    			myArrayList.add(o);
     
    			System.out.println("ajouter");
    			} catch (Exception e) {
    				System.out.println(e.toString());
    			}
    		}
    		// Quand je clique là , j'ai une grosse erreur ! 
    if(source==f.g){
    	if(listIterator.hasNext()) {
    		  MonObjet s = listIterator.next();
    		  System.out.println(listIterator.nextIndex());
     
    		}
     
     
    		}
     
     
    	}
     
    }
    Erreur : lorsque je clique sur le Boutton ( sourceEv == f.g ) .


    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
    Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException
    	at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:782)
    	at java.util.ArrayList$Itr.next(ArrayList.java:754)
    	at ActionFrame.actionPerformed(ActionFrame.java:45)
    	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012)
    	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404)
    	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    	at java.awt.Component.processMouseEvent(Component.java:6268)
    	at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    	at java.awt.Component.processEvent(Component.java:6033)
    	at java.awt.Container.processEvent(Container.java:2045)
    	at java.awt.Component.dispatchEventImpl(Component.java:4629)
    	at java.awt.Container.dispatchEventImpl(Container.java:2103)
    	at java.awt.Component.dispatchEvent(Component.java:4455)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4633)
    	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4297)
    	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4227)
    	at java.awt.Container.dispatchEventImpl(Container.java:2089)
    	at java.awt.Window.dispatchEventImpl(Window.java:2517)
    	at java.awt.Component.dispatchEvent(Component.java:4455)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:649)
    	at java.awt.EventQueue.access$000(EventQueue.java:96)
    	at java.awt.EventQueue$1.run(EventQueue.java:608)
    	at java.awt.EventQueue$1.run(EventQueue.java:606)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
    	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:116)
    	at java.awt.EventQueue$2.run(EventQueue.java:622)
    	at java.awt.EventQueue$2.run(EventQueue.java:620)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:619)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)

  2. #22
    Membre confirmé

    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2011
    Messages : 181
    Points : 519
    Points
    519
    Billets dans le blog
    1
    Par défaut
    Re-re-bonjour,
    Essaye ça plutôt :
    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
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.ArrayList;
    import java.util.ListIterator;
    import javax.swing.AbstractAction;
     
     
     
     
    public class ActionFrame extends AbstractAction implements ActionListener {
     
     
    	Frame f  ;
    	ArrayList<MonObjet> myArrayList = new ArrayList<MonObjet>();
    	ListIterator<MonObjet> listIterator = myArrayList.listIterator();
     
    	public ActionFrame(Frame frame) {
    		// TODO Auto-generated constructor stub
    		this.f = frame ; 
    	}
    	@Override
    	public void actionPerformed(ActionEvent arg0) {
    		// TODO Auto-generated method stub
    		Object source = arg0.getSource() ;
     
    		if(source==f.a){
     
     
    			String nom = f.nom.getText();
    		String age = String.valueOf(f.age.getText());
    			try {
    			MonObjet o = new MonObjet(nom, age);
    			myArrayList.add(o);
     
    			System.out.println("ajouter");
    			} catch (Exception e) {
    				System.out.println(e.toString());
    			}
    		}
    		// Quand je clique là , j'ai une grosse erreur ! 
    if(source==f.g){
    	for (int i = 0; i < myArrayList.size (); i++)
                      System.out.println (myArrayList.get (i).getNom ());
    		}
     
     
    		}
     
     
    	}
     
    }
    Ça devrai marché, courage, la chance sourie souvent au persévérants, N’oublie pas de me tenir au courent, A+ .

  3. #23
    Membre régulier
    Profil pro
    Ingénieur
    Inscrit en
    Janvier 2009
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Janvier 2009
    Messages : 209
    Points : 95
    Points
    95
    Par défaut
    Salut , merci pour ta réactivité ,

    Ce que je veux faire , c'est affiché un par un , mais pas tous a la fois .

  4. #24
    Membre confirmé

    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2011
    Messages : 181
    Points : 519
    Points
    519
    Billets dans le blog
    1
    Par défaut
    Pour ça, tu peut déclarer un attribut entier que tu incrémenta a chaque affichage, donc faire comme ceci
    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
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.ArrayList;
    import java.util.ListIterator;
    import javax.swing.AbstractAction;
     
     
     
     
    public class ActionFrame extends AbstractAction implements ActionListener {
     
     
    	Frame f  ;
    	ArrayList<MonObjet> myArrayList = new ArrayList<MonObjet>();
    	ListIterator<MonObjet> listIterator = myArrayList.listIterator();
            private int cpt = -1;
     
    	public ActionFrame(Frame frame) {
    		// TODO Auto-generated constructor stub
    		this.f = frame ; 
    	}
    	@Override
    	public void actionPerformed(ActionEvent arg0) {
    		// TODO Auto-generated method stub
    		Object source = arg0.getSource() ;
     
    		if(source==f.a){
     
     
    			String nom = f.nom.getText();
    		String age = String.valueOf(f.age.getText());
    			try {
    			MonObjet o = new MonObjet(nom, age);
    			myArrayList.add(o);
     
    			System.out.println("ajouter");
    			} catch (Exception e) {
    				System.out.println(e.toString());
    			}
    		}
    		// Quand je clique là , j'ai une grosse erreur ! 
    if(source==f.g){
          if (!myArrayList.isEmpty()){
    	if (cpt < myArrayList.size ())
                      System.out.println (myArrayList.get (cpt).getNom ());
            else
               System.out.println (myArrayList.get (myArrayList.size () - 1).getNom ());
           }
    		}
     
     
    		}
     
     
    	}
     
    }

  5. #25
    Membre confirmé

    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2011
    Messages : 181
    Points : 519
    Points
    519
    Billets dans le blog
    1
    Par défaut
    Pardons, j'ai oublié l’incrémentation
    Comme suite :
    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
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.ArrayList;
    import java.util.ListIterator;
    import javax.swing.AbstractAction;
     
     
     
     
    public class ActionFrame extends AbstractAction implements ActionListener {
     
     
    	Frame f  ;
    	ArrayList<MonObjet> myArrayList = new ArrayList<MonObjet>();
    	ListIterator<MonObjet> listIterator = myArrayList.listIterator();
            private int cpt = -1;
     
    	public ActionFrame(Frame frame) {
    		// TODO Auto-generated constructor stub
    		this.f = frame ; 
    	}
    	@Override
    	public void actionPerformed(ActionEvent arg0) {
    		// TODO Auto-generated method stub
    		Object source = arg0.getSource() ;
     
    		if(source==f.a){
     
     
    			String nom = f.nom.getText();
    		String age = String.valueOf(f.age.getText());
    			try {
    			MonObjet o = new MonObjet(nom, age);
    			myArrayList.add(o);
     
    			System.out.println("ajouter");
    			} catch (Exception e) {
    				System.out.println(e.toString());
    			}
    		}
    		// Quand je clique là , j'ai une grosse erreur ! 
    if(source==f.g){
          if (!myArrayList.isEmpty()){
    	if (cpt < myArrayList.size ())
                      System.out.println (myArrayList.get (++cpt).getNom ());
            else
               System.out.println (myArrayList.get (myArrayList.size () - 1).getNom ());
           }
    		}
     
     
    		}
     
     
    	}
     
    }

  6. #26
    Membre confirmé

    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2011
    Messages : 181
    Points : 519
    Points
    519
    Billets dans le blog
    1
    Par défaut
    slt,
    Je ne l'avais pas remarquer, mais le message d'erreur que t'as posté, indique que c'est une erreur lors d'une tentative d'accée simultané a une ressource partagée, si tu utilise des threads, fait gaf a la synchronisation, et le meilleur sa serai d'essayer sans, en suite de les rajoutés, et ressayer .
    A+, bon courage

  7. #27
    Membre régulier
    Profil pro
    Ingénieur
    Inscrit en
    Janvier 2009
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Janvier 2009
    Messages : 209
    Points : 95
    Points
    95
    Par défaut
    Merci , ça marche , j'ai ajouté un try/catch , pour pallier les probleme de fin d'enregistrement . Actuellement , je n'utilise pas de thread a mon niveau , tous les thread seront sur un serveur

  8. #28
    Membre régulier
    Profil pro
    Ingénieur
    Inscrit en
    Janvier 2009
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Janvier 2009
    Messages : 209
    Points : 95
    Points
    95
    Par défaut
    Voila , ça ne marche pas le Get(index ) , dans le sens ou il me renvoit le même objet , vu que j'instancie un objet que je stock dans une arrayList , donc lorsque je relis ce que j'ai stocké , j'ai les objet instanciés mais ils sont identique , du coup , je ne peux rien faire ! .

  9. #29
    Membre confirmé

    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2011
    Messages : 181
    Points : 519
    Points
    519
    Billets dans le blog
    1
    Par défaut
    Rajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    this.nom = name;
                    this.prenom = prenom;
    dans le constructeur de la class MonObject, Bon courage, A+ .

  10. #30
    Membre régulier
    Profil pro
    Ingénieur
    Inscrit en
    Janvier 2009
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Janvier 2009
    Messages : 209
    Points : 95
    Points
    95
    Par défaut
    Citation Envoyé par mohamine1989 Voir le message
    Rajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    this.nom = name;
                    this.prenom = prenom;
    dans le constructeur de la class MonObject, Bon courage, A+ .
    Voila le contructeur de mon Objet :


    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
    	public ObjetIntervenant(int ID ,String name , double seuil, double DED , Color couleur){
    		this.nameIntervenant=name; 
    		this.seuil=seuil ;
    		this.couleur=couleur;
    		this.DED=DED;
    		this.ID = ID ;
    	   // this.x=x;
    	   // this.y=y;
    	    ImageIcon icon = cm.createImageIcon("images/inter.png");
    		JPanel panelObjet = new JPanel();
    		panelObjet.setLayout(new BorderLayout()); 
    		panelObjet.add("North",new JLabel(icon));
    		//Dimension size = getPreferredSize();
    		//setPreferredSize(new Dimension(panelObjet.getWidth(),panelObjet.getHeight()));
     
    		panelObjet.setToolTipText(name);
    		panelObjet.add("South",new JLabel(String.valueOf(DED)));
    		add(panelObjet);
     
    	}
    Le truc c'est que lorsque je l'ajoute cet objet a l'ArrayList , j'ai l'ajout d'une ligne sur la JTable correspondante , et l'ajout de l'objet graphique sur un label ( qui représente une carte ) avec un monLabel.add(objet) .
    Lors de la suppression de l'objet , je le supprime sans probleme de Jtable en utilisant l'indice du Tableau mais si j'utilise le même indice pour effacer l'objet graphique avec un ( monLabel.remove(indice ) ) , ce n'est pas une solution , vu que si je cree un autre type d'objet et que le rajout sur monLabel , il sera effacé s'il porte l'indice de la ligne .
    Voila en gros pourquoi je cherche un moyen idéal pour diffirencier les deux suppressions .
    PS: j'ai deux arrayList , qui contiennent deux type D'objet ) .

  11. #31
    Membre régulier
    Profil pro
    Ingénieur
    Inscrit en
    Janvier 2009
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Janvier 2009
    Messages : 209
    Points : 95
    Points
    95
    Par défaut [UML] : Générer le diagramme sous Eclipse
    Bonjour ,

    Je voudrais générer mon diagramme de class à partir de mon code JAVA .

    Merci .

  12. #32
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059

  13. #33
    Membre régulier
    Profil pro
    Ingénieur
    Inscrit en
    Janvier 2009
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Janvier 2009
    Messages : 209
    Points : 95
    Points
    95
    Par défaut
    Merci mais j'ai fait une erreur de post .

    Probleme résolu ! : )

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. trier une liste d'objets dans une ArrayList
    Par sandrine49 dans le forum Collection et Stream
    Réponses: 9
    Dernier message: 13/10/2008, 09h59
  2. Réponses: 4
    Dernier message: 19/06/2007, 11h41
  3. Réponses: 1
    Dernier message: 08/09/2006, 18h21
  4. [C#] Tri d'objet dans une ArrayList
    Par guillaume16 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 14/03/2006, 13h05
  5. [Collections]Supprimer des doublons dans une ArrayList
    Par emie31 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 12/12/2005, 16h15

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