begin process at 2012 02 12 22:23:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Divers

 > 

Débutant(e)

 > 

JComboBox tester l'existance d'un élément


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

JComboBox tester l'existance d'un élément

jeudi 12 mars 2009 à 15:15:34 | JComboBox tester l'existance d'un élément

stigmate101

Bonjour
Comment dans une JComboBox tester l'existance d'un élément
Merci
jeudi 12 mars 2009 à 15:35:24 | Re : JComboBox tester l'existance d'un élément

amundain

Salut,


Tu fais une boucle de récupération des éléments et tu testes chaque élément...

for

( int i=0;i<ta_jComboBox.getItemCount();i++){

boolean exists=
((String)ta_jComboBox.getItemAt(i)).equals(TA_VARIABLE_COMPAREE));

}



A +,

amundain


Java bien,merci.
jeudi 12 mars 2009 à 16:49:54 | Re : JComboBox tester l'existance d'un élément

stigmate101

Merci Amundain pour ta solution.

Je pense qu'il doit exister une fonction qui permet de tester, si un élément existe dans une JComboBox.

Merci

@+

vendredi 13 mars 2009 à 14:53:28 | Re : JComboBox tester l'existance d'un élément

stigmate101

Je chercher à ajouter un élément selectionné dans une JComboBox dans une seconde JCombobox en testant au préalable l'existance de cette élément.
Dans mon code, le comportement n'est pas satisfaisant. J'utilise la fonction equal(). Ce que je ne comprends pas, c'est le premier test n'est pas pris en compte.
Par exemple si je selection "Element 1" dans la première JComboBox et que je le copie dans la seconde, alors qu'il est déjà présent. La première fois, il est copie, la deuxième fois non.
Ni la première fois ni la seconde, il ne devrait être copié.
Merci d'avance
Voici le code :

 

// --- début Classe FenetreListes_04 --- //
import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;

@SuppressWarnings("serial")
public class FenetreListes_04 extends JFrame{
 private JComboBox liste1;
 private JComboBox liste2;
 
 public FenetreListes_04(){
  super();
  
  build();//On initialise notre fenêtre
 }
 
 private void build(){
  setTitle("Fenêtre qui propose une liste de choix"); //On donne un titre à l'application
  setSize(420,340); //On donne une taille à notre fenêtre
  setLocationRelativeTo(null); //On centre la fenêtre sur l'écran
  setResizable(true); //On permet le redimensionnement
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //On dit à l'application de se fermer lors du clic sur la croix
  setContentPane(buildContentPane());
 }
 
 private JPanel buildContentPane(){
  JPanel panel = new JPanel();
  panel.setLayout(new FlowLayout());
  
  Object[] elements = new Object[]{"Element 1", "Element 2", "Element 3", "Element 4", "Element 5"};
  
  liste1 = new JComboBox(elements);  
  panel.add(liste1);
  
  JButton bouton = new JButton(new CopierAction_04(this, "Copier"));  
  panel.add(bouton);
  
  liste2 = new JComboBox(elements);  
  panel.add(liste2);
  
  /*
  JButton bouton2 = new JButton(new SupprimmerAction_04(this, "Enlever"));  
  panel.add(bouton2);
  
  JButton bouton3 = new JButton(new ViderAction_04(this, "Vider"));  
  panel.add(bouton3);
  */
  return panel;
 }
 
 public JComboBox getListe1(){
  return liste1;
 }
 
 public JComboBox getListe2(){
  return liste2;
 }
 
 public static void main(String[] args) {
  //On crée une nouvelle instance de notre FenetreTexte
  FenetreListes_04 fenetre = new FenetreListes_04();
  fenetre.setVisible(true);//On la rend visible
 }
}
// --- Fin Classe FenetreListes_04 --- //

// --- Début class CopierAction_04 --- //
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;

@SuppressWarnings("serial")
public class CopierAction_04 extends AbstractAction {
 private FenetreListes_04 fenetre;
 
 public CopierAction_04(FenetreListes_04 fenetre, String texte){
  super(texte);  
  this.fenetre = fenetre;
 }
 
 public void actionPerformed(ActionEvent e) {
  boolean exists = false;
  String sAction = "Pas ajouté";
  Object selected = fenetre.getListe1().getSelectedItem();
  
  for ( int i = 0 ; i < fenetre.getListe2().getItemCount() ; i++){   
   exists = (fenetre.getListe2().getItemAt(i).equals(selected));   
  } 

  if(!exists){
   fenetre.getListe2().addItem(selected);
   sAction ="Ajouté";
  }
  System.out.println( sAction +" " + selected);    
 }
}
// --- Fin  class CopierAction_04 --- //

vendredi 13 mars 2009 à 15:09:54 | Re : JComboBox tester l'existance d'un élément

amundain

Réponse acceptée !

Salut,

Il y a un souci sur ta comparaison : tu compares 2 instances de String qui ont le même texte mais pas la même référence ! La comparaison la + efficace peut se faire sur le contenu, à savoir le texte elle-même

Essaie de remplacer ta méthode actionPerformed avec celle-ci :

public

void actionPerformed(ActionEvent e) {

boolean exists = false ;

String sAction =

"Pas ajouté" ;

String selected =

fenetre .getListe1().getSelectedItem().toString();

for ( int i = 0 ; i < fenetre .getListe2().getItemCount() ; i++){

String itemToCompare=

fenetre .getListe2().getItemAt(i).toString();

if (itemToCompare.equals(selected)){

exists=

true ;

}

}

if (!exists){

fenetre .getListe2().addItem(selected);

sAction =

"Ajouté" ;

}





A +,

amundain


Java bien,merci.



Cette discussion est classée dans : élément, tester, existance, jcombobox


Répondre à ce message

Sujets en rapport avec ce message

Tester l'existance d'un fichier??? [ par alexglvr ] Bonjour,j'ai un prg qui affiche des pages html.Les pages html sont contenues dans un repertoire et appelées:Page1.htm, Page2.htm,...,PageX.htmil y a d JComboBox en Java [ par etudiant ] Je voudrais savoir comment provoquer une action même si l'élément sélectionné dans le ComboBox est le même qui a été sélectionné précédemment? Pour l' Tester l'existance d'un fichier [ par juancho2786 ] Bonsoir tous !!Je suis entrain de créer un application dans laquel je crée un fichier. Le programme au lancement vérifie si le fichier existe sinon il récupéré l'élément selectionné à partir d'un jcombobox [ par yasmina13 ] Bonsoir à tous;je veut récupéré l'element seléctionné à partir d'un combobox pour l'affiché dans jlabel .sa c'est un bout de code qui justifier ma sol parcourir les élément d'un jcombobox [ par blatifa2008 ] bonjour,svp,je veux connaitre est ce qu'il y'a une méthode ou un évenement qui permettre de parcourir les éléments d'un jcombobox ou jlist , exactemen Problémes avec JComboBox [ par haikelca ] Mon problémé se situe dans le fait que je veux récuperer deux attributs de deux JComboBox pour les utiliser dans le constructeur d'un Jpanel.Mais je n JComboBox [ par cedric774 ] voilà j'ai un petit souci avec les JComboje viens de faire un petit programme rapido qui résume le problèmelorsque j'appuie sur une Combo qui se trouv JComboBox dans une JXTable [ par testeurforme ] BonjourNovice en la matière j'espère trouver une âme charitable qui pourrait m'orienter (la réponse est aussi bien venue :) ) pour le problème suivant comment tester un jRadioButton [ par damIRIS ] bonjour je developpe un petit programme pour mon bts .dans mon programme je doit faire un choix en cochant un premier JRadioButton ou un autre JRadioB Pouvez-vous tester mon application ? [ par baratribord ] Bonjour,Avec votre aide j'ai développé une application Java Web Start.Pouvez-vous tester et me dire les erreurs que vous rencontrez, les point à améli


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,420 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales