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 :

Retirer un element depuis un arrayList en java


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 58
    Par défaut Retirer un element depuis un arrayList en java
    Bonjour a tous ,
    S'il vous plait j'ai un petit problème.j'ai un ensemble des textfields crées dynamiquement a l'aide d'un bouton ajouter et je veux ajouter un bouton "retirer" pour supprimer un ou plusieurs éléments selectionnés.j'ai essayé d'utiliser la methode remove mais je n'arrive pas a trouver le résultat souhaité.
    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
    buttonAdd.addActionListener(e-> addButtons(mainPanel, (Integer)spinner.getValue()));
            buttondelete.addActionListener(new ActionListener(){
     
     
    		@Override
    		public void actionPerformed(ActionEvent arg0) {
    			//int size = textFields.size();
    			//textFields.remove(size);
    			// TODO Auto-generated method stub
    			int x= (Integer)spinner.getValue();
    			    for(int i=textFields.size()-x; i>=textFields.size(); i++)
     
    			    mainPanel.remove(i);
    			System.out.println(textFields.size());
    		}
            });
    	}
     
    	private void addButtons(JPanel panel, int number) {
    		if ( number>0 ) {
    			int count = panel.getComponentCount()/2; // on compte le nombre de composants déjà ajoutés
     
    			GridBagConstraints gbc = new GridBagConstraints(0, GridBagConstraints.RELATIVE, 1, 1, 0, 0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(2,4,2,4), 0, 0);
    			for(int i=0; i<number; i++) {
     
    				JLabel label = new JLabel(getLabelText(count+i)); // une étiquette pour le champ
    				gbc.gridx = 0;
    				gbc.weightx = 0; 
    				gbc.fill = GridBagConstraints.NONE;
    				panel.add(label, gbc);
     
                   JTextField textField = new JTextField("parameter");  // le champ
                   textField.setPreferredSize( new Dimension( 500, 24 ) );
    				textFields.add(textField);
    				JButton btn = new JButton("help");
    				JPanel pane= new JPanel();
    				pane.add(textField);
    				pane.add(btn);
    				gbc.gridx = 1;
    				gbc.weightx = 1; 
    				gbc.fill = GridBagConstraints.HORIZONTAL;
    				panel.add(pane, gbc);
     
     
     
    			}
    			// on a modifié l'UI alors qu'elle était déjà affichée : on revalide (pour le layout) et on repeint (pour l'affichage)
    			panel.revalidate();
    			panel.repaint();
    		}
     
    	}

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Il y a plusieurs problèmes :

    1. for(int i=textFields.size()-x; i>=textFields.size(); i++)Cette boucle ne fait rien sauf si x<=0. En effet, si on appelle textFields.size() size pour simplifier : on comment avec i=size-x, et on boucle si x>=size, ce qui est impossible, si x>0 (i est forcément < size, donc ne peut être >=size.
    2. dans le conteneur, il n'y a pas que des JTextField. Il y a au moins des labels et des boutons (on le voit dans le code d'ajout, qu'on ajoute pour chaque JTextField, un JLabel et un JButton). Tu ne peux donc avoir de corrélation entre la position du field dans la liste et sa position dans la liste des composants du conteneur. Même s'il n'y avait pas ces JLabel et JButton, ce serait risqué de le faire. Il vaut mieux aller chercher l'instance de JTextField dans la liste, et le supprimer, en faisant par exemple remove(textfield.get(i))
    3. Il faut également penser à supprimer le JLabel et le JButton correspondant (ce qui va d'obliger à stocker ces composants, et les liens entre les composants, par exemple, par une Map et une classe qui représentera le trio. Et surtout penser à supprimer le JTextField de la liste, sinon elle va devenir incohérente par rapport à ce qu'il se trouve dans le formulaire, et il y a de fortes chances que ça plante au second appel
    4. comme pour l'ajout, il faut faire un revalidate() et un repaint() à la fin, pour que l'UI se mette à jour.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Inactif  
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 58
    Par défaut
    merci pour votre explication.j'ai essayé de suivre ces étapes.

  4. #4
    Inactif  
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 58
    Par défaut
    Franchement je ne suis pas génie en java. ce que je peux faire c'est ça:
    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
     
    	HashMap<JLabel,JTextField> hashmap=new HashMap();	
    buttonAdd.addActionListener(e-> addButtons(mainPanel, (Integer)spinner.getValue()));
            buttondelete.addActionListener(new ActionListener(){
     
     
    		@Override
    		public void actionPerformed(ActionEvent arg0) {
    			//int size = textFields.size();
    			//textFields.remove(size);
    			// TODO Auto-generated method stub
    			int x= (Integer)spinner.getValue();
     
    			    for(int i=textFields.size()-x; i>=textFields.size(); i--)
    				hashmap.remove(textFields.get(i));
    			    System.out.println("Size of HashMap after removal : " + hashmap.size());
    			System.out.println(textFields.size());
    		}
            });
    	}
     
    	private void addButtons(JPanel panel, int number) {
    		if ( number>0 ) {
    			int count = panel.getComponentCount()/2; // on compte le nombre de composants déjà ajoutés
     
    			GridBagConstraints gbc = new GridBagConstraints(0, GridBagConstraints.RELATIVE, 1, 1, 0, 0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(2,4,2,4), 0, 0);
    			for(int i=0; i<number; i++) {
     
    				JLabel label = new JLabel(getLabelText(count+i)); // une étiquette pour le champ
    				gbc.gridx = 0;
    				gbc.weightx = 0; 
    				gbc.fill = GridBagConstraints.NONE;
    				panel.add(label, gbc);
     
                   JTextField textField = new JTextField("parameter");  // le champ
                   textField.setPreferredSize( new Dimension( 500, 24 ) );
    				textFields.add(textField);
    				JButton btn = new JButton("help");
    				JPanel pane= new JPanel();
    				pane.add(textField);
    				pane.add(btn);
    				gbc.gridx = 1;
    				gbc.weightx = 1; 
    				gbc.fill = GridBagConstraints.HORIZONTAL;
    				panel.add(pane, gbc);
     
     
    				hashmap.put(label, textField);
     
    				System.out.println("Size of HashMap after addition : " + hashmap.size());
    			}
    			// on a modifié l'UI alors qu'elle était déjà affichée : on revalide (pour le layout) et on repeint (pour l'affichage)
    			panel.revalidate();
    			panel.repaint();
    		}
     
    	}

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Bah, ce n'est pas si loin de ce qu'il faut faire.

    Il serait plus logique d'avoir un map avec en clef JTextField et valeur associée le JLabel, puisque tu as une liste de JTextField. A partir du JTextField à supprimer, tu retrouves donc le JLabel associé, et tu peux le supprimer aussi.

    Donc :
    Map<JTextField,JLabel> hashmapLabel=new HashMap<>();Ensuite il faut la même chose pour les JButton. Une autre Map.
    Map<JTextField,Jbutton> hashmapButton=new HashMap<>();Donc quand tu créés un trio :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    textFields.add(textField);
    hashmapLabel.put(textField, label);
    hashmapButton.put(textField, btn);
    Quand tu supprimes, pour chaque textfield à supprimer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    pane.remove(textFieldASupprimer);
    panel.remove(hashmapLabel.remove(textFieldASupprimer)); // pour supprimer le JLabel ("en même temps" de la map et du container)
    panel.remove(hashmapButton.remove(textFieldASupprimer)); // pour supprimer le JButton ("en même temps" de la map et du container)
    pour la boucle, si j'ai bien compris, le JSpinner contient le nombre de champs : si on saisit une valeur plus petite que la taille de la liste textFields, alors on supprime ceux en trop.
    Plutôt que de chercher à faire une boucle qui va te poser un problème de gestion des index (compliqué), mais également pour la suppression (à résoudre par un Iterator et Iterator.remove() par exemple), utilise plutôt sublist(), ce qui va te simplifier la vie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    List<JTextField> listeTextFieldASupprimer = textFields.sublist(x, textFields.size()); // on obtient une liste des éléments à supprimer
    for(JTextField textFieldASupprimer : listeTextFieldASupprimer ){ // on les parcourt
         // donc là on supprime
         pane.remove(textFieldASupprimer);
         pane.remove(hashmapLabel.remove(textFieldASupprimer));  
         pane.remove(hashmapButton.remove(textFieldASupprimer));  
    }
    // il reste à supprimer les textfields de la liste de textfields
    listeTextFieldASupprimer.clear(); // c'est ça qui est sympa avec les sublist()...
    pane.revalidate();
    pane.repaint();



    Sinon, je te parlais aussi de faire une classe qui pointe sur les deux composants label et bouton, ou, mieux, les trois, comme ça même plus besoin de Map.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public class ComponentHandler {
     
         public final JTextField textField;
         public final JLabel label;
         public final JButton button;
     
         public ComponentHandler(JTextField textField, JLabel label, JButton button) {
               this.textField=textField;
               this.label=label;
               this.button=button;
         }
     
    }
    Au moment où tu crées un JTextField
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    textFields.add(new ComponentHandler(textField, label, btn)); // on pourra changer le nom de la variable textFields (qui bien sûr doit être déclarée en List<ComponentHandler>)
    Et la boucle de suppressions deviens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    List<ComponentHandler> listeTextFieldASupprimer = textFields.sublist(x, textFields.size()); // on obtient une liste des éléments à supprimer
    for(ComponentHandler textFieldASupprimer : listeTextFieldASupprimer ){ // on les parcourt
         // donc là on supprime
         pane.remove(textFieldASupprimer.textField);
         pane.remove(textFieldASupprimer.label);  
         pane.remove(textFieldASupprimer.button);  
    }
    // il reste à supprimer les éléments de la liste textfields
    listeTextFieldASupprimer.clear(); 
    pane.revalidate();
    pane.repaint();
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #6
    Inactif  
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 58
    Par défaut
    j'ai testé le premier 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
    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
     
    buttonAdd.addActionListener(e-> addButtons(mainPanel, (Integer)spinner.getValue()));
            buttondelete.addActionListener(new ActionListener(){
     
     
    		@Override
    		public void actionPerformed(ActionEvent arg0) {
     
    			List<JTextField> listeTextFieldASupprimer = textFields.subList(2, textFields.size()); // on obtient une liste des éléments à supprimer
    			for(JTextField textFieldASupprimer : listeTextFieldASupprimer ){ // on les parcourt
    			     // donc là on supprime
    			     pane.remove(textFieldASupprimer);
    			     pane.remove(hashmapLabel.remove(textFieldASupprimer));  
    			     pane.remove(hashmapButton.remove(textFieldASupprimer));  
    			}
    			// il reste à supprimer les textfields de la liste de textfields
    			listeTextFieldASupprimer.clear(); // c'est ça qui est sympa avec les sublist()...
    			pane.revalidate();
    			pane.repaint();
    		}
            });
    	}
     
    	private void addButtons(JPanel panel, int number) {
    		if ( number>0 ) {
    			int count = panel.getComponentCount()/2; // on compte le nombre de composants déjà ajoutés
     
    			GridBagConstraints gbc = new GridBagConstraints(0, GridBagConstraints.RELATIVE, 1, 1, 0, 0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(2,4,2,4), 0, 0);
    			for(int i=0; i<number; i++) {
     
    				JLabel label = new JLabel(getLabelText(count+i)); // une étiquette pour le champ
    				gbc.gridx = 0;
    				gbc.weightx = 0; 
    				gbc.fill = GridBagConstraints.NONE;
    				panel.add(label, gbc);
     
                   JTextField textField = new JTextField("parameter");  // le champ
                   textField.setPreferredSize( new Dimension( 500, 24 ) );
    				textFields.add(textField);
    				JButton btn = new JButton("help");
    				JPanel pane= new JPanel();
    				pane.add(textField);
    				pane.add(btn);
    				gbc.gridx = 1;
    				gbc.weightx = 1; 
    				gbc.fill = GridBagConstraints.HORIZONTAL;
    				panel.add(pane, gbc);
    				textFields.add(textField);
    				hashmapLabel.put(textField, label);
    				hashmapButton.put(textField, btn);
    				btn.addActionListener(new ActionListener(){
     
    					@Override
    					public void actionPerformed(ActionEvent arg0) {
    						// TODO Auto-generated method stub
    						new Thread() { 
    							 public void run() { 
    							  Runtime runtime = Runtime.getRuntime(); 
    							  try {
    								runtime.exec(new String[] {"C:\\Program Files (x86)\\Windows NT\\Accessories\\wordpad.exe"} );
    							} catch (IOException e) {
    								// TODO Auto-generated catch block
    								e.printStackTrace();
    							} 
     
    							  /*try { 
    							   BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); 
    							   String line = ""; 
    							   try { 
    							    while((line = reader.readLine()) != null) { 
    							     // Traitement du flux de sortie de l'application si besoin est 
    							    } 
    							   } finally { 
    							    reader.close(); 
    							   } 
    							  } catch(IOException ioe) { 
    							   ioe.printStackTrace(); 
    							  }*/ 
    							 } 
    							}.start();	
    					}
     
    				});
     
    			}
    			// on a modifié l'UI alors qu'elle était déjà affichée : on revalide (pour le layout) et on repeint (pour l'affichage)
    			panel.revalidate();
    			panel.repaint();
    		}
     
    	}
    je mets 2 au lieu de x dans cette instruction List<JTextField> listeTextFieldASupprimer = textFields.subList(2, textFields.size()); puisque si int x= Integer.parseInt(spinner.getValue()) provoque une erreur.
    si je teste ce code un bloc d'errreurs s'affichent:
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at java.awt.Container.remove(Unknown Source)
    at info.xml.swing.MainFrame$DynamicFormExample$4.actionPerformed(MainFrame.java:937)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at java.awt.Container.remove(Unknown Source)
    at info.xml.swing.MainFrame$DynamicFormExample$4.actionPerformed(MainFrame.java:937)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at java.awt.Container.remove(Unknown Source)
    at info.xml.swing.MainFrame$DynamicFormExample$4.actionPerformed(MainFrame.java:937)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

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

Discussions similaires

  1. Trouver un element dans un ArrayList
    Par redsaint0 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 24/03/2008, 16h18
  2. explication ArrayList en java
    Par drexlbob dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 02/02/2008, 00h54
  3. Réponses: 0
    Dernier message: 27/11/2007, 14h37
  4. Supprimer plusieurs elements d'une arraylist
    Par metalcoyote dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 25/01/2007, 14h14
  5. [JSF]Affichage de beans depuis une ArrayList dans une JSP
    Par adrien.nicolet dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 05/06/2006, 17h33

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