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

AWT/Swing Java Discussion :

Lecture du contenu du ComboBox


Sujet :

AWT/Swing Java

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 209
    Points : 101
    Points
    101
    Par défaut Lecture du contenu du ComboBox
    voilà mon pb j'ai un combo dans lequel il y a une liste de nom moi je veux ouvrir le fichier xml correspondant au nom choisi. mon pb c'est que les noms sont des phrase et à la lecture du contenu du combo il me retourne chq mot dans une ligne
    comment faire pour rendre le resultat une seule chaine sans retour à la ligne mais j'ai essayer replace ('\r', ' ') ça n'a pas marché et je pense aue c'est même pas des vrai retour à la ligne donc j'y comprend rien
    merci d'avance
    Et vivement l'espris de groupe

  2. #2
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Tu peut nous donner la forme de la chaîne qui t'est retournée. En plus, pour enlever tous les retours à la ligne, il faut faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    chaine = chaine.replaceAll("\r\n","");
    chaine = chaine.replaceAll("\n","");

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 209
    Points : 101
    Points
    101
    Par défaut
    voilà la chaine qui retorne:
    Accèes aux services de base

    1.0

    Français

    alors que moi j'ai besoin de Accèes aux services de base 1.0 Français

  4. #4
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 209
    Points : 101
    Points
    101
    Par défaut
    j'ai essayer les replceAll ça ne marche pas

  5. #5
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Points : 722
    Points
    722
    Par défaut
    Et dans ta combo, tu l'as sous quelle forme? "Accèes aux services de base 1.0 Français" ou est-ce qu'il y a des virgules ou autres séparateurs?

    voilà la chaine qui retorne:
    Accèes aux services de base

    1.0

    Français
    Comment tu récupères ça? Montre-nous la ligne de code, stp.

  6. #6
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 209
    Points : 101
    Points
    101
    Par défaut
    voila :
    j'insere le contenu de la combo avec :
    jComboBox1.setModel(new DefaultComboBoxModel(parseur.liste()));
    parseur.liste() est une methode d'une autre classe qui fait un parsing XML et retourne un vector rempli de cette façon:
    public void characters (char buf[], int offset, int len) throws SAXException{
    String s = new String (buf, offset, len);
    if ( vrai == true)
    { chaine = chaine+" "+s;}
    }
    vrai correspond à une variable boolenne aui est à vrai lorsque on est sur un element X dans le fichier XML

  7. #7
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Points : 722
    Points
    722
    Par défaut
    Que vaut parseur.liste()?

    PS : pense aux balises "CODE" la prochaine fois que postes du code : c'est beaucoup plus lisible...

  8. #8
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 209
    Points : 101
    Points
    101
    Par défaut
    desolé pour la lisibilité je suis nouvelle dans les forums. voila le code de la classe de parsing:

    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
     
    package my.appli;
    import org.xml.sax.*;
    import org.xml.sax.helpers.*;
    import javax.xml.parsers.SAXParserFactory;
    import javax.xml.parsers.SAXParser; 
    import java.io.*;
    import javax.swing.*;
    import java.util.*;
     
    public class ParsingM extends HandlerBase {
        boolean vrai = false ;
        Vector matrices = new Vector();
           String chaine ="";
        int i = 0;
        public static void main (String args[]){
                   System.exit(0);
        }
     
        public void startElement (String name, AttributeList attrs) throws SAXException {
          if (name == "matrice") vrai = true;
           }
        public void endElement (String name) throws SAXException {
           if (name == "matrice") {
               vrai = false; 
               matrices.addElement((Object) chaine);
                       }
        }
        public void characters (char buf[], int offset, int len) throws SAXException{
            String s = new String (buf, offset, len);
            if ( vrai == true) 
            {if (chaine == "") chaine =s ;
                else
                    chaine = chaine+" "+s;}
            else chaine ="";
           }
        public Vector liste (){
            return matrices;
        }
    }

  9. #9
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Points : 722
    Points
    722
    Par défaut
    Ce que je voulais connaître en fait, c'est le résultat de ta méthode Peux-tu nous écrire ce que cette méthode retourne au moment où tu fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jComboBox1.setModel(new DefaultComboBoxModel(parseur.liste()));
    PS : pour les balises "CODE", c'était justement une remarque pour que tu découvres ce petit bouton magique qui donne envie aux gens de lire tes posts (parce que pour être honnête, quand y'a 50 lignes de codes à lire, si c'est pas mis en forme grâce à ces balises, moi je zappe... )

  10. #10
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 209
    Points : 101
    Points
    101
    Par défaut
    le résultat graphique est en pièce jointe
    Fichiers attachés Fichiers attachés

  11. #11
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Points : 722
    Points
    722
    Par défaut
    Et quand tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (String) getSelectedItem();
    ça te donne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Accèes aux services de base 
     
    1.0 
     
    Français
    ?
    Je ne comprends pas. Y'a pas de retour à la ligne dans la chaine que tu récupères normalement...
    A la limite, si tu "split" ta chaîne suivant un séparateur présent entre "Accèes aux services de base", "1.0" et "Français", ça expliquerait le schmilblick, mais sinon, je ne vois pas...

  12. #12
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 209
    Points : 101
    Points
    101
    Par défaut
    pour le code que tu m'as donnée rend le même résultat mais j'ai pas compris ce que tu voulais dire par "split"
    Encore merci

  13. #13
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Points : 722
    Points
    722
    Par défaut
    split() est une méthode de la classe String qui permet de diviser une chaîne de caractères en plusiseurs suivant un séparateur particulier.

    Par exemple si tu as ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String str = "toto tata titi tutu";
    String[] tab = str.split(" ");
    alors tab sera un tableau de dimension 4 contenant :
    - tab[0] = toto
    - tab[1] = tata
    - tab[2] = titi
    - tab[3] = tutu

    Si cette méthode est appelée quelque part, cela pourrait expliquer pourquoi tu as ce résultat, mais autrement, je ne vois pas...

  14. #14
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 209
    Points : 101
    Points
    101
    Par défaut
    vu que je la connait pas je l'ai utilisé nul part la division se fait lors de la lecture du contenu du combo car avant il y a vais une chaine
    en tout cas merci et si je trouve je vous informe

  15. #15
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Points : 722
    Points
    722
    Par défaut
    Citation Envoyé par noussa_nouha
    pour le code que tu m'as donnée rend le même résultat
    Qu'entends-tu par là? Que getSelectedItem() te renvoie un tableau de 3 String?
    Ca me paraît bizarre... T'as fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println((String) getSelectedItem());
    ?

  16. #16
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 209
    Points : 101
    Points
    101
    Par défaut
    exactement

  17. #17
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Points : 722
    Points
    722
    Par défaut
    Tu dois faire un truc en plus...
    Moi j'ai fait ç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
     
    		JPanel panel = new JPanel();
    		panel.add(pb);
     
    		Vector comboContent = new Vector();
    		comboContent.add("Accèes aux services de base 1.0 Français");
    		comboContent.add("Accèes aux services de base 2.0 Anglais");
    		comboContent.add("Accèes aux services de base 1.0 Allemand");
    		combo = new JComboBox(comboContent);
    		combo.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent arg0) {
    				System.out.println((String) combo.getSelectedItem());
    			}
    		});
    		panel.add(combo);
    Ceci, appartenant à une classe qui teste autre chose... Code complet de la classe :
    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
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
     
    import java.awt.Dimension;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.Vector;
     
    import javax.swing.AbstractButton;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JCheckBox;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
     
    public class PilouFrame extends JFrame {
    	private JCheckBox cb;
    	private PilouButton pb;
    	private JComboBox combo;
     
     
    	public PilouFrame() {
    		pb = new PilouButton("Name", "Text", "Com", 150, 50, true);
    		JPanel panel = new JPanel();
    		panel.add(pb);
     
    		Vector comboContent = new Vector();
    		comboContent.add("Accèes aux services de base 1.0 Français");
    		comboContent.add("Accèes aux services de base 2.0 Anglais");
    		comboContent.add("Accèes aux services de base 1.0 Allemand");
    		combo = new JComboBox(comboContent);
    		combo.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent arg0) {
    				System.out.println((String) combo.getSelectedItem());
    			}
    		});
    		panel.add(combo);
     
    		cb = new JCheckBox("enable");
    		cb.setSelected(true);
    		cb.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent arg0) {
    				changeButtonState();
    			}
    		});
    		panel.add(cb);
    		getContentPane().add(panel);
    	}
     
    	protected void changeButtonState() {
    		pb.setEnabled(cb.isSelected());
    	}
     
    	public static void main(String[] args){
    		PilouFrame frame = new PilouFrame();
    		frame.setVisible(true);
    		frame.pack();
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	}
     
     
     
     
     
    	class PilouButton extends JButton{
     
    //		public PilouButton(String iconE, String iconD, String name, String text,
    		public PilouButton(String name, String text,
    				String com, int x, int y, boolean state) {
     
    			//état
    			this.setEnabled(state);
     
    			//icone
    			this.setIcon(new ImageIcon(ClassLoader.getSystemResource("7x7.gif")));
    			this.setDisabledIcon(new ImageIcon(ClassLoader.getSystemResource("7x7_ddb.gif")));
     
    			this.setName(name);
    			this.setText(text);
    			this.setActionCommand(com);
     
    			this.setVerticalTextPosition(AbstractButton.CENTER);
    			this.setHorizontalTextPosition(AbstractButton.CENTER);
     
    			this.setPreferredSize(new Dimension(x, y));
    			this.setMinimumSize(new Dimension(10, 10));
    			this.setMaximumSize(new Dimension(x, y));
     
    			/**
                             * Choisis l'affichage que tu préfères
                             */
    			//1) à gauche
    //			this.setVerticalTextPosition(AbstractButton.CENTER);
    //			this.setHorizontalTextPosition(AbstractButton.LEADING); //aka LEFT, for left-to-right locales
    			//2) au milieu
    //			setVerticalTextPosition(AbstractButton.BOTTOM);
    //		    setHorizontalTextPosition(AbstractButton.CENTER);
    			//3) à droite
    			setVerticalTextPosition(AbstractButton.CENTER);
    		    setHorizontalTextPosition(AbstractButton.RIGHT);
    		}	
    	}
    }
    Ben ça marche nickel...

    Regardes du côté des éléments que tu mets dans ta combo...

  18. #18
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 209
    Points : 101
    Points
    101
    Par défaut
    merci pour tout mais moi je travail pas pareil vu que le vector que tu as crée pour moi c'est le résultat de la methode liste()
    et pour le combo est dejà existant dans le JInternalFrame donc je ne peux que:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jComboBox1.setModel(new DefaultComboBoxModel(parseur.liste()));
    mais je voudrais savoir si il se peut aue le problème vient du vector lui même. est-il possible que c'est lui qui decoupe la chaîne

  19. #19
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 209
    Points : 101
    Points
    101
    Par défaut
    ça y est c'est le vector le lieu du pb je vais voir comment résoudre ça

  20. #20
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Points : 722
    Points
    722
    Par défaut
    C'est pour ça que je te demandais le résultat de la méthode
    tout à l'heure.

    Si tu n'y arrives pas, dis-nous avec quoi il est initialisé, et on essaiera de t'aider...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. lecture du contenu d'un dossier
    Par Damish dans le forum ASP
    Réponses: 12
    Dernier message: 11/10/2006, 19h51
  2. [Système] Lecture du contenu d'un PDF
    Par Diss dans le forum Langage
    Réponses: 9
    Dernier message: 20/09/2006, 15h59
  3. [VB5] |Lecture du contenu d'un fichier .TXRT|
    Par jlb59 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 04/06/2006, 17h16
  4. Récupérer le contenu dans combobox
    Par alainconnu dans le forum Langage
    Réponses: 2
    Dernier message: 07/05/2006, 18h13
  5. Réponses: 45
    Dernier message: 04/05/2006, 01h10

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