begin process at 2010 02 10 10:49:39
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Algorithme

 > 

Autre

 > 

probléme avec JComboBox


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

probléme avec JComboBox

mercredi 28 mai 2008 à 22:22:12 | probléme avec JComboBox

chat11

j'ai  mis un JcomboBox et JList dans ma fenêtre, et voici le code :

private void comboBox1ItemStateChanged(ItemEvent e) {

                               vect.clear();   troverliste();  texttitre.showPopup();

                               vectList.getSelectedItem();

                               list.updateList(vectList);

                                }

private void troverliste(){

                                 //j'établie la connexion avec ma BD  et j'execute cette requête

                        rs=statement.executeQuery("select distinct Titredulivre from ANNONCES where Titredulivre LIKE '"+texttitre.getSelectedItem().toString() +  "%' order by Titredulivre" );         

..

}

public void updateList (Vector v)

                {

                listModel.clear ();

                for (int i = 0; i < v.size(); i++)

                {

                listModel.addElement (v.get(i));

                                }

   }

Je clique sur le Combobox et je sélectionne un item, ce  dernier va être ajouté à la List mais le code ci-dessus ajoute l'item sélectionné 2 fois dans liste. Comment éviter cette répétition.

Merci d'avance

mercredi 28 mai 2008 à 23:44:33 | Re : probléme avec JComboBox

Chatbour

Membre Club
Salut,

je ne connais pas l'explication, mais il suffit d'utiliser un ActionListener au lieu d'un ItemListener..


mercredi 28 mai 2008 à 23:51:15 | Re : probléme avec JComboBox

Chatbour

Membre Club
Re,

ce code résout aussi le problème (je poste tout le code..) :

class Fenetre extends JFrame {
    private JComboBox combo = new JComboBox();
    DefaultListModel listModel = new DefaultListModel();
    JList list = new JList(listModel);

    public Fenetre() {
        combo.addItem("ESS");
        combo.addItem("CA");
        combo.addItem("EST");
        combo.addItem("CSS");

        JPanel pan = new JPanel();
        pan.add(combo);
        pan.add(new JScrollPane(list));
       
        this.getContentPane().add(pan);
       
        combo.addItemListener(new ItemListener() {
            public void itemStateChanged(ItemEvent evt) {
                if(evt.getStateChange() == ItemEvent.SELECTED)
                    listModel.addElement(combo.getSelectedItem());
            }
        });

        this.setSize(300, 200);
       
this .setLocationRelativeTo(null);
       
this .setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       
this .setVisible(true);
    }

    public static void main(String[] args) {
        new Fenetre();

    }
}


jeudi 29 mai 2008 à 16:52:02 | Re : probléme avec JComboBox

chat11

merci Chatbour pour votre réponse grâce à ton programme j'ai éviter la répétition ,mais lorsque je tape  par exemole "a" dans le combobox  pour avoir tous les livres qui commence par " a"  ,elle  est ajouter dans la liste ,comment éviter ça?
 et merci encore une fois
jeudi 29 mai 2008 à 20:49:07 | Re : probléme avec JComboBox

Chatbour

Membre Club
Désolé j'ai pas compris ce que tu demandes : si tu veux expliquer d'avantage..

jeudi 29 mai 2008 à 22:13:01 | Re : probléme avec JComboBox

chat11

mon Jcombox contient une grande liste de livre pour y accéder facilement à un des livres je dois taper la premiere lettre aprés je valide par entrée pour voir ces livres mais malheureusement la letrre s'ajoute dans Jliste donc je veux éviter ça j'espere que tu ma compris maintenent merci encore chatbour.
jeudi 29 mai 2008 à 22:19:52 | Re : probléme avec JComboBox

chat11

j'ajoute que le JComboBox  est editable=>combo.setEditable(true);
jeudi 29 mai 2008 à 23:44:14 | Re : probléme avec JComboBox

Chatbour

Membre Club
ok :

tu essaies de remplir ta liste par les noms des livres alors que la première lettre de l'item sélectionné qui est ajoutée ?

je te propose de :

1. émettre une requete SELECT récupérant les livres dont le nom ... (comme tu as fais).

2. récupérer le résultat dans un objet ResultSet.

3. remplir ta liste avec les noms des livres figurant dans l'objet ResultSet (une boucle classique fera l'affaire).

4. fermer l'objet ResulSet.

j'espère que c'est clair maintenant : si je me trompe une autre fois poste ton code, à ce moment là je devrai piger ;)
vendredi 30 mai 2008 à 00:22:03 | Re : probléme avec JComboBox

chat11

voici mon code :
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.jgoodies.forms.factories.*;
import com.jgoodies.forms.layout.*;
import java.sql.*;
import java.util.Vector;
public class lote extends JFrame {
 public lote() {
 
  initComponents();
 }

 

 private void initComponents() {
   dialogPane = new JPanel();
  contentPanel = new JPanel();
  texttitre = new JComboBox(vect);
  scrollPane1 = new JScrollPane();
   listModel = new DefaultListModel();
  list1 = new JList(listModel);
  buttonBar = new JPanel();
  okButton = new JButton();
  cancelButton = new JButton();
  CellConstraints cc = new CellConstraints();

  //======== this ========
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  Container contentPane = getContentPane();
  contentPane.setLayout(new BorderLayout());

  //======== dialogPane ========
  {
   dialogPane.setBorder(Borders.DIALOG_BORDER);
   dialogPane.setLayout(new BorderLayout());
   
   //======== contentPanel ========
   {
    contentPanel.setLayout(new FormLayout(
     new ColumnSpec[] {
      FormFactory.DEFAULT_COLSPEC,
      FormFactory.LABEL_COMPONENT_GAP_COLSPEC,
      FormFactory.DEFAULT_COLSPEC,
      FormFactory.LABEL_COMPONENT_GAP_COLSPEC,
      FormFactory.DEFAULT_COLSPEC,
      FormFactory.LABEL_COMPONENT_GAP_COLSPEC,
      FormFactory.DEFAULT_COLSPEC,
      FormFactory.LABEL_COMPONENT_GAP_COLSPEC,
      FormFactory.DEFAULT_COLSPEC,
      FormFactory.LABEL_COMPONENT_GAP_COLSPEC,
      FormFactory.DEFAULT_COLSPEC,
      FormFactory.LABEL_COMPONENT_GAP_COLSPEC,
      new ColumnSpec(ColumnSpec.FILL, Sizes.DEFAULT, FormSpec.DEFAULT_GROW),
      FormFactory.LABEL_COMPONENT_GAP_COLSPEC,
      FormFactory.DEFAULT_COLSPEC,
      FormFactory.LABEL_COMPONENT_GAP_COLSPEC,
      FormFactory.DEFAULT_COLSPEC,
      FormFactory.LABEL_COMPONENT_GAP_COLSPEC,
      FormFactory.DEFAULT_COLSPEC,
      FormFactory.LABEL_COMPONENT_GAP_COLSPEC,
      FormFactory.DEFAULT_COLSPEC
     },
     new RowSpec[] {
      FormFactory.DEFAULT_ROWSPEC,
      FormFactory.LINE_GAP_ROWSPEC,
      FormFactory.DEFAULT_ROWSPEC,
      FormFactory.LINE_GAP_ROWSPEC,
      FormFactory.DEFAULT_ROWSPEC,
      FormFactory.LINE_GAP_ROWSPEC,
      FormFactory.DEFAULT_ROWSPEC
     }));
    
    //---- texttitre ----
    
    texttitre.setEditable(true);
    texttitre.addItemListener(new ItemListener() {
     public void itemStateChanged(ItemEvent e) {
      comboBox7ItemStateChanged(e);
     }
    });
    contentPanel.add(texttitre, cc.xywh(3, 1, 19, 1));
    
    //======== scrollPane1 ========
    {
     scrollPane1.setViewportView(list1);
    }
    contentPanel.add(scrollPane1, cc.xywh(3, 5, 19, 1));
   }
   dialogPane.add(contentPanel, BorderLayout.CENTER);
   
   //======== buttonBar ========
   {
    buttonBar.setBorder(Borders.BUTTON_BAR_GAP_BORDER);
    buttonBar.setLayout(new FormLayout(
     new ColumnSpec[] {
      FormFactory.GLUE_COLSPEC,
      FormFactory.BUTTON_COLSPEC,
      FormFactory.RELATED_GAP_COLSPEC,
      FormFactory.BUTTON_COLSPEC
     },
     RowSpec.decodeSpecs("pref")));
    
    //---- okButton ----
    okButton.setText("OK");
    buttonBar.add(okButton, cc.xy(2, 1));
    
    //---- cancelButton ----
    cancelButton.setText("Cancel");
    buttonBar.add(cancelButton, cc.xy(4, 1));
   }
   dialogPane.add(buttonBar, BorderLayout.SOUTH);
  }
  contentPane.add(dialogPane, BorderLayout.CENTER);
  }

 private void comboBox7ItemStateChanged(ItemEvent e) {
  vect.clear();
             troverliste();
            texttitre.showPopup();
         
            if(e.getStateChange() == ItemEvent.SELECTED){
                    listModel.addElement(texttitre.getSelectedItem());
                                  }
           

 }
 
 private void troverliste(){
  Connection con;
   ResultSet rs=null;
    java.sql.Statement statement=null;
        String titre ;
          try
        {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            String s = "jdbc:odbc:bd1";
            String s1 = "";
            String s2 = "";
            con = DriverManager.getConnection(s, s1, s2);
            statement = con.createStatement();
        }
        catch(Exception exception)
        {
        
        }       
        try{ 
//ma requête
         rs=statement.executeQuery("select distinct Titredulivre from ANNONCES where Titredulivre LIKE '"+texttitre.getSelectedItem().toString() +  "%' order by Titredulivre" ); // *where titre like  ' "+(String)texttitre.getSelectedItem()+"*'" */  
          while(rs.next())  {
              titre=rs.getString("Titredulivre");
              vect.addElement(titre);
               }
        }
        catch(SQLException sqlexception)
        {
            System.out.println(sqlexception);
        }

 }

 

 

  private JPanel dialogPane;
 private JPanel contentPanel;
 
 private JComboBox texttitre;
 private JScrollPane scrollPane1;
 DefaultListModel listModel;
 private JList list1;
 private JPanel buttonBar;
 private JButton okButton;
 private JButton cancelButton;
//main
  public static void main(String args[]){
  lote fen = new lote();
  fen.setVisible(true);
  fen.pack();}
}
il est long car j'ai construis ma fenêtre à l'aide de JFormDeseign .j'ai bien établies la connexion avec la BD et aussi lorsque je tape une lettre dans le combobox j'obtiens les livres qui commence par cette lettre ,mais    listModel.addElement(texttitre.getSelectedItem()); ajoute la lettre dans la liste.
merci.


vendredi 30 mai 2008 à 00:33:55 | Re : probléme avec JComboBox

chat11

j'ai vraiment honte de toi ,le programme est trés long, et j'espére que tu va le comprendre.

1 2

Cette discussion est classée dans : code, void, jcombobox, probléme, titredulivre


Répondre à ce message

Sujets en rapport avec ce message

JComboBox, Probléme à l'ouverture !!!! [ par eldered ] Bonjours, voila ske j'obtiens à l'ouverture de mon programme :http://blindprod.free.fr/tmp/bug.jpgQd je le redimencsionne, mon JComboBox s'affiche bie scrollbar [ par seb87 ] Ben voila avec l'aide de safisoft j'ai simplifié la classe qui permet de gerer l'affichage d'une image et l'ajout d'element graphique sur celle ci.Or probléme avec jndi [ par dexterovitch ] voila parés avoir fait un fonction qui affiche ce que j'ai sur ma base de données LDAP je me suis attaquer a celle pour inserer des enregistrement seu Probléme de classe [ par nanu ] Bonjour tout le mode :)Alors voilà mon probléme :je voudrai que ma class2 herite de la classe 1 comme ceci :class1.java :class class1{ class1 (int v Probléme de Class non trouvée d'un débutant [ par nanu ] Bonjour tout le monde, alors voici mon probléme :J'ai un fichier.java et grace a jedit et son plugin jarMacker j'ai créer Bonjour.jarensuite je prend Imprimer un fichier Texte (.txt) en Java [ par critters ] Bonjour tout le monde!j'ai une "petite" Question concernant les impressions en Java: Comment fait-on? j'ai fait mes recherches un peu partout et après jcombobox à 2 colonnes [ par kourdou59 ] Yo !J'aimerais une liste déroulante à 2 colonnes. La 1ère colonne consituerait le "code" et la  2e le "libellé". En sélectionnant, j'enregistrerai ain pas d'icone dans mes boutons [ par kaloway ] bonjour, je me suis mis à eclipse. là, j'ai un probléme avec les boutons de la barre de menu de mon programme.les boutouns sont affichés mais n'ont p Comment dérouler une JCombobox par le code ? [ par comeochris ] Bonjour,J'ai un petit souci, j'aimerais dérouler une JCombobox via le code. Comment faire ?J'ai bien la méhode combo.requestFocus() qui permet de fair erreur code java [ par Erwan76 ] bonjour a tous,je suis débutant en java et je rencontre un probleme lors de son éxécution.j'essaie de récupérer un champs d'une base de donnée MySql e


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

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 : 0,437 sec (3)

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