Mettre jcombobox a vide après modif

MacJéjé -  
 MacJéjé -
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. sakoba
     
    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. MacJéjé
       
      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. MacJéjé
       
      Toujours pas d'aide les amis??
      0
  2. sakoba
     
    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
  3. MacJéjé
     
    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
  4. sakoba
     
    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. MacJéjé
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. sakoba
     
    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. MacJéjé
       
      D'accord merci bien de ton aide précieuse
      0