Mettre jcombobox a vide après modif

Bonjour,

Est ce que quelqu'un pourrait m'expliquer comment ça ce fais que dans un actionListener en java, il est impossible de faire jcombobox.setSelected(-1) pour rien saisir au lancement de l'appli?????

Merci

5 réponses

  1. C'est Simple utilise le DefaultComboBoxModel comme ça:

    DefaultComboBoxModel myModel=new DefaultComboBoxModel();
    JComboBox box=new JComboBox(myModel);
    myModel.removeAllElements();
    voici un example complet ici:
    http://sakoba.byethost13.com/2011/02/04/java-use-of-combobox/
    0
    1. C'est ce que j'ai fais :

      Je créé un bouton d'ajout et à la fin je met ce code :

      //Rafraichir 
      	    bbb();
      	    aaa();
      


      et voci les deux fonctions dont je fais appelles :

      private void aaa (){
      
      		rsMembre = Select.ListeMembre();
      
      		try
      		{
      		while (rsMembre.next())
      		{
      		Membre r = new Membre();
      		r.setnumPersonne(rsMembre.getInt(1));
      		r.setnumGroupe(rsMembre.getInt(2));
      		r.setresponsabiliteMembre(rsMembre.getString(3).trim());
      		r.setdateNaissanceMembre(rsMembre.getDate(4));
      		r.setnomPersonne(rsMembre.getString(5).trim());
      		r.setprenomPersonne(rsMembre.getString(6).trim());
      		r.settitreCivilite(rsMembre.getString(7).trim());
      		nomPrenom.add(r);
      		}
      		System.out.println(nomPrenom);
      		}
      		catch(Exception e)
      		{
      		System.out.println("Exception " + e.getMessage());
      		}
      		jComboBoxNom.setSelectedIndex(-1);
      		jComboBoxNom.addActionListener(
      		new java.awt.event.ActionListener()
      		{
      		public void actionPerformed(ActionEvent ae)
      		{
      		infos.clear();
      		jButtonEditer.setEnabled(true);
      		String nomPre = jComboBoxNom.getSelectedItem().toString();
      		System.out.println("+++++++++++++++++++++++>>>> Nom prénom: " + nomPre);
      		//String prenom = jComboBoxNom.getSelectedItem().toString();
      		//rsMembreRech = Select.ListeMembreNom(nom, prenom);
      		int ind = nomPre.indexOf(" ");
      		// String nom = nomPre.substring(0, ind); // <<<<<<<<<<<<SUPPRIMER String
      		nom = nomPre.substring(0, ind); // <<<<<<<<<<<<<<<<<<< la ligne devient
      
      		jTextFieldNomMembre.setText(nom);
      
      		ind = nomPre.lastIndexOf(" ");
      		String prenom = nomPre.substring(ind +1);
      		jTextFieldPrenomMembre.setText(prenom);
                                 
                           /*Créer ici  le vecteur infos en ne prenant que les données du membre sélectionné
                              et les récuperer pour les mettre dans les JTextField */
                           	
                            //Ou même sans créer infos 
                              //Vector <String> infos = new Vector<String>();
      						// Ajoute ce println ici:
      						System.out.println("nom " + "\"" + nom + "\""); //<<<<<<<<<<<<<<<<<<<<<<<<<<<
      						rsMembre = Select.ListeMembre();
      						try
      						{
      						while (rsMembre.next())
      						{
      						System.out.println("on a bien next...");
      						String nompersonne = rsMembre.getString("nompersonne");
      						System.out.println("nompersonne " + "\"" + nompersonne + "\"");
      						//il faut peut-être faire un trim: nompersonne = nompersonne.trim();
      						nompersonne = nompersonne.trim();
      
      						if(nompersonne.equals(nom))
      						{
      						// et pour voir si on a égalité:
      						System.out.println("on a bien égalité...");
      						// Mais sélectionne en début de liste pour gagner du temps
      						String numpersonne = rsMembre.getString("numpersonne");
      						String numgroupe = rsMembre.getString("numgroupe");
      						String responsabilitemembre = rsMembre.getString("responsabilitemembre");
      						String datenaissancemembre = rsMembre.getString("datenaissancemembre");
      						//String nompersonne = rsMembre.getString("nompersonne");
      						String prenompersonne = rsMembre.getString("prenompersonne");
      						String titrecivilite = rsMembre.getString("titrecivilite");
      						jTextFieldNumeroMembre.setText(numpersonne);
      						jTextFieldDate.setText(datenaissancemembre);
      						System.out.println(datenaissancemembre);
      						break;
      						}
      						}
      						}
      						catch(Exception e)
      						{
      						System.out.println("Exception " + e.getMessage());
      						}
                           }
                        });
               }	
      	
      	private void bbb(){
      		jComboBoxNom.removeAllItems();
      	}
      	
      


      Si tu veux, d'abors je vide ma combo et après je l'a rempli mais ça me met une erreur comme quoi éclipse n'est pas content du vidage et du remplissage de la combo à cet endroit là.

      Peux-tu m'aider stp?

      merci d'avance
      0
    2. Toujours pas d'aide les amis??
      0
  2. Bonjour Evites d'utiliser l'objet JCombobox pour modifier ton ComboBox.
    Utilise plutôt le DefaulfComboBoxModel pour les differentes Opération sur ton ComboBox: Example:

    DefaultComboBoxModel myModel=new DefaultComboBoxModel();
    JComboBox box=new JComboBox(myModel);

    //Pour Vider la Liste
    myModel.removeAllElements();

    //Pour Ajouter un Element
    myModel.addElements(rs.getString(1));
    0
    1. Et ou je le créé le :
      DefaultComboBoxModel myModel=new DefaultComboBoxModel();
      JComboBox box=new JComboBox(myModel);
      


      Dans le getjComboBox ou sur quand je clique sur le bouton ajouter??
      0
      1. Vous créer le DefaultComboBoxModel myModel=new DefaultComboBoxModel();
        en dehors de Toute les Les Fonctions donc (Public)
        Et ensuite dans votre Constructeur vous faites ça:
        getjComboBox .setModel(myModel);

        Quand tu clique sur le bouton ajouter tu appelles la Methode addElement(Objet elem) du Model. Example:

        myModel.addElement(nompersonne);
        0
        1. Voici le code de mon bouton ajouter membre :

          	//Fonction ajoutant un membre
          	private void btValiderAjout_click ()
          	{	
          		
          		//Gestion numéro de membre
          		int numMembre;
          		//numMembre = 0;
          		//rsNombrePersonne = Select.NombrePersonne();
          		try
          		{
          			numMembre = Integer.parseInt(jTextFieldNumeroMembre.getText());
          		}
          		catch (NumberFormatException e)
          		{
          			JOptionPane.showMessageDialog(null, "Rentrez un numéro de membre valide" );
          			 jLabelObli.setVisible(true);
          			 jLabelObli1.setVisible(true);
          			 jLabelObli2.setVisible(true);
          			 jLabelObli3.setVisible(false);
          			 jLabelObli4.setVisible(false);
          			 jLabelObli5.setVisible(false);
          			 jLabelObli6.setVisible(false);
          			 jLabelObli7.setVisible(false);
          			 jLabelObli8.setVisible(false);
          			 return;		
          		}
          		
          	/*	if (!Pattern.matches("[0-9]+", jTextFieldNumeroMembre.getText()))
          		{
          		   JOptionPane.showMessageDialog(null, "Rentrez un numéro de membre valide");
          			 jLabelObli.setVisible(true);
          			 jLabelObli1.setVisible(true);
          			 jLabelObli2.setVisible(true);
          			 jLabelObli3.setVisible(false);
          			 jLabelObli4.setVisible(false);
          			 jLabelObli5.setVisible(false);
          			 jLabelObli6.setVisible(false);
          			 jLabelObli7.setVisible(false);
          			 jLabelObli8.setVisible(false);
          			 return;	
          		}*/
          		
          		//Gestion numéro de groupe		
          		Groupe numGroupe = (Groupe) jComboBoxNumeroGroupe.getSelectedItem();
          		if (numGroupe == null)
          	 	{
          	 		JOptionPane.showMessageDialog(null, "Sélectionnez un numéro de groupe" );
          	 		jLabelObli.setVisible(true);
          	 		jLabelObli1.setVisible(true);
          	 		jLabelObli2.setVisible(false);
          	 		jLabelObli3.setVisible(false);
          	 		jLabelObli4.setVisible(false);
          	 		jLabelObli5.setVisible(false);
          	 		jLabelObli6.setVisible(true);
          	 		jLabelObli7.setVisible(false);
          	 		jLabelObli8.setVisible(false);
          	 		return;
          	 	}		
          
          		//Gestion nom de membre
          		String nomMembre = jTextFieldNomMembre.getText();
          		if (nomMembre.equals(""))
          		{
          			JOptionPane.showMessageDialog(null, "Rentrez un nom de membre" );
          			jLabelObli.setVisible(true);
          			jLabelObli1.setVisible(true);
          			jLabelObli2.setVisible(false);
          			jLabelObli3.setVisible(true);
          			jLabelObli4.setVisible(false);
          			jLabelObli5.setVisible(false);
          			jLabelObli6.setVisible(false);
          			jLabelObli7.setVisible(false);
          			jLabelObli8.setVisible(false);
          			return;
          		}
          			
          		if (!Pattern.matches("[A-Za-z -]*", nomMembre))
          		{
          			JOptionPane.showMessageDialog(null, "Rentrez un nom de membre valide" );
          			jLabelObli.setVisible(true);
          			jLabelObli1.setVisible(true);
          			jLabelObli2.setVisible(false);
          			jLabelObli3.setVisible(true);
          			jLabelObli4.setVisible(false);
          			jLabelObli5.setVisible(false);
          			jLabelObli6.setVisible(false);
          			jLabelObli7.setVisible(false);
          			jLabelObli8.setVisible(false);			
          			return;
          		}
          			
          		//Gestion date de naissance du membre
          		
          		/*String jour = (String) jComboBoxJour.getSelectedItem();
          		String mois = (String) jComboBoxMois.getSelectedItem();
          		String annee = (String) jComboBoxAnnee.getSelectedItem();*/
          		
          	/*	Date date;
          		try
          		{
          			date = Date.valueOf(jTextFieldDate.getText());
          		}
          		catch (IllegalArgumentException e)
          		{
          			JOptionPane.showMessageDialog(null, "Rentrez une date au format yyyy/mm/dd" );
          			return;
          		}*/
          
          		//Gestion prénom de membre
          		String prenomMembre = jTextFieldPrenomMembre.getText();
          		if (prenomMembre.equals(""))
           	 	{
           	 		JOptionPane.showMessageDialog(null, "Rentrez un prénom de membre" );
           	 		jLabelObli.setVisible(true);
           	 		jLabelObli1.setVisible(true);
           	 		jLabelObli2.setVisible(false);
           	 		jLabelObli3.setVisible(false);
           	 		jLabelObli4.setVisible(true);
           	 		jLabelObli5.setVisible(false);
           	 		jLabelObli6.setVisible(false);
           	 		jLabelObli7.setVisible(false);
           	 		jLabelObli8.setVisible(false);
          	
           	 		return;
           	 	}	
          		
          		if (!Pattern.matches("[A-Za-z -]*", prenomMembre))
          		{
          			JOptionPane.showMessageDialog(null, "Rentrez un prénom de membre valide" );
          			jLabelObli.setVisible(true);
          			jLabelObli1.setVisible(true);
          			jLabelObli2.setVisible(false);
          			jLabelObli3.setVisible(false);
          			jLabelObli4.setVisible(true);
          			jLabelObli5.setVisible(false);
          			jLabelObli6.setVisible(false);
          			jLabelObli7.setVisible(false);
          			jLabelObli8.setVisible(false);
          			return;
          		}
          
          		//Gestion titre de civilité du membre	 	 	
          		String titre = (String)jComboBoxTitre.getSelectedItem();		
          		if (titre == null)
          		{
          			JOptionPane.showMessageDialog(null, "Sélectionnez un titre de civilité" );
          			 jLabelObli.setVisible(true);
          			 jLabelObli1.setVisible(true);
          			 jLabelObli2.setVisible(false);
          			 jLabelObli3.setVisible(false);
          			 jLabelObli4.setVisible(false);
          			 jLabelObli5.setVisible(false);
          			 jLabelObli6.setVisible(false);
          			 jLabelObli7.setVisible(false);
          			 jLabelObli8.setVisible(true);
          			return;
          		}	 	 
          			 	 	
          		//Gestion responsabilité du membre
          		String resp = (String) jComboBoxResponsabilité.getSelectedItem();
          		if (resp == null) 
          		{
          			JOptionPane.showMessageDialog(null, "Sélectionnez une responsabilité" );
          			 jLabelObli.setVisible(true);
          			 jLabelObli1.setVisible(true);
          			 jLabelObli2.setVisible(false);
          			 jLabelObli3.setVisible(false);
          			 jLabelObli4.setVisible(false);
          			 jLabelObli5.setVisible(true);
          			 jLabelObli6.setVisible(false);
          			 jLabelObli7.setVisible(false);
          			 jLabelObli8.setVisible(false);
          			return;
          		}		
          		
          		/*vectorMembre.add(numMembre);
          		vectorMembre.add(numGroupe);
          		vectorMembre.add(titre);
          		vectorMembre.add(jour);
          		vectorMembre.add(mois);
          		vectorMembre.add(annee);
          		vectorMembre.add(resp);
          		vectorMembre.add(nomMembre);
          		vectorMembre.add(prenomMembre);*/
          
          
          		//Gestion de l'insertion du membre
          		try
          		{
          			//Ajout dans la table Personne de la BDD
          			Insertion.insertPersonne(numMembre, nomMembre, prenomMembre, titre);
          			//Ajout dans la table Membre de la BDD
          			Insertion.insertResa( numMembre, numGroupe.getnumGroupe(), resp, null, nomMembre, prenomMembre, titre );
          		    JOptionPane.showMessageDialog(this, "Ajout effectué" , "Message", JOptionPane.INFORMATION_MESSAGE );
          		}
          		catch(Exception e)
          		{
          			e.printStackTrace();
          		    JOptionPane.showMessageDialog(this, "Ajout non-effectué\n\n"+e , "Message", JOptionPane.ERROR_MESSAGE );
          		    return;
          		}
          		
          		/*int option = JOptionPane.showConfirmDialog(this, "Voulez vous ajouter ce membre?","Ajouter un membre", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);
          		if (option == JOptionPane.OK_OPTION){
          			Insertion.insertResa(vectorMembre);
          		}*/
          
          	    //Remise des champs à vide
          		ViderChamp();
          	    
          	    //Grisonne les champs
          		GrisonnerChamps();
          	    
          	    //Supprime les champs obligatoires
          	    SupprimeObligation();
          	    
                     //Pour Vider la Liste
                    myModel.removeAllElements(); 
          
                     <<<<<<<<<<<<<<<<<<<<Ici je voudrais ajouter une fonction à un model
          
          
          	}


          Peut-on ajouter une fonction à un modèle???

          Du coup pour moi :

          Ma fonction s'appelle aaa();(vous y avait le code plus haut dans un des commentaires). elle sert à remplir ma jComboBoxNom.

          Mon modèle : MyModel
          Ma fonction : aaa()

          Peut -on donc les associers??

          Merci d'avance sakoba
          0
      2. Vous pouvez les Associer bien sur mais je ne vois pas trop l'importance puisque le model(myModel) peut être utilisé à l'intérieur de ta fonction aaa()
        0
        1. D'accord merci bien de ton aide précieuse
          0