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 :

[Débutant] récupérer l'évènement d'un élément d'une liste déroulante.


Sujet :

AWT/Swing Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 20
    Points : 6
    Points
    6
    Par défaut [Débutant] récupérer l'évènement d'un élément d'une liste déroulante.
    Salut,

    Quelle est l'évènement à utiliser lorsque l'on sélectionne un élément d'une liste déroulante.

    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
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
     
    package mkrss;
     
    import java.awt.FlowLayout;
    import java.awt.Dimension;
    import javax.swing.*;
    import javax.swing.border.*;
    import java.awt.*; 
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.*;
    import javax.xml.parsers.*;
    import org.w3c.dom.*;
    import javax.swing.JOptionPane;
     
    //http://tempsreel.nouvelobs.com/file/rss_perm/rss_permanent.xml
     
    public class AfficheFluxRss extends JFrame implements ActionListener{
     
     
     
    	private JPanel container2 = null;//Déclaration de l'objet JPanel	
    	private FlowLayout layout2 = null ;//Déclaration de notre layout
    	private JLabel texte2 = null;//Déclaration de l'objet JLabel
    	private JLabel texte3 = null;//Déclaration de l'objet JLabel
    	private JButton bouton2= null;//Déclaration du bouton
    	Choice maCombo = null;
    	JTextField urlfield = null;
    	OutilsDOM myutilzgui2;
     
    	public AfficheFluxRss ( OutilsDOM myutil){
    		super();		
    		build2(myutil);//On initialise notre fenêtre
    	}//Fin du second constructeur
     
    	private void build2(OutilsDOM myutil){
     
    		this.setTitle("Morad KALKOUL: parser de flux RSS"); //On donne un titre à l'application
    		this.setSize(800,400); //On donne une taille à notre fenêtre
    		this.setLocationRelativeTo(null); //On centre la fenêtre sur l'écran
    		this.setResizable(true) ; //On interdit la redimensionnement de la fenêtre
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //On dit à l'application de se fermer
    		//lors du clic sur la croix
    		//On lui spécifie un container principal
    		this.setContentPane(getContainer2(myutil));
     
    	}//fin de build
     
    	private JPanel getContainer2(OutilsDOM myutil){
     
    		this.maCombo = new Choice();
     
    		layout2 = new FlowLayout(); //Instanciation du layout
    		layout2.setAlignment(FlowLayout.LEFT);//On centre les composants
     
    		container2 = new JPanel() ; //On crée notre objet
    		container2.setLayout(layout2); //On applique le layout
     
    		texte2 = new JLabel() ;//On crée notre objet
    		texte2.setPreferredSize(new Dimension(250,200)) ;//On lui donne une taille
    		texte2.setText("Url: " + myutil.rssvct.unoeud.lastElement().fluxrss.toString()); //On lui donne un texte
     
    		container2.add(texte2);	
     
    		 myutilzgui2 = new OutilsDOM() ;
     
    		myutilzgui2 = myutil ;
     
     
    		//Remplissage de la liste déroulante.
     
    		for (int x = 0; x < this.myutilzgui2.rssvct.unoeud.size(); x++ ){
    			maCombo.add(x +1 + ". " + this.myutilzgui2.rssvct.unoeud.elementAt(x).titre);	
    		}//fin de for
     
    	    container2.add(maCombo);
     
    		//fin du remplissage de la liste.
     
    		texte3 = new JLabel() ;//On crée notre objet
    		texte3.setPreferredSize(new Dimension(250,200)) ;//On lui donne une taille
    		texte3.setText(""); //On lui donne un texte
    		container2.add(texte3);
     
    	    bouton2 = new JButton () ;//Création du bouton
    		bouton2.setPreferredSize(new Dimension(125,25)) ;//On lui donne une taille
    		bouton2.setText("Fermer") ;//On lui donne un texte    
    		container2.add(bouton2);
     
    		bouton2.addActionListener(this);//On ajoute la fenêtre en tant qu'écouteur du bouton
     
    		return container2 ;	
     
    }//Fin de getContainer2
     
    	public void actionPerformed(ActionEvent e){
     
    		try {
     
    			if(e.getSource() == bouton2){//Si l'action émane bien du bouton2
    				this.setVisible(false);
     
    			}// du traitement sur le bouton
     
    			if (e.getSource() == maCombo) {
     
    				//texte3.setText(maCombo.getSelectedItem()); //On lui donne un texte
     
     
    			}//fin du traitement de 
     
     
     
     
     
    		}//Fin de try	
     
    	    	catch ( Exception e1 ){
     
     
    	    	}//fin de catch
     
     
    	}//Fin de actionPerformed
     
     
     
     
    }//Fin classe AfficheFluxRss

    Dans actionPerformed j'aimerais modifier le texte3en fonction de l'élément séléctionné de la liste déroulante maCombo.

    Merci de votre aide,

    @+

  2. #2
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 108
    Points : 3 203
    Points
    3 203
    Par défaut
    ItemListener

    methode addItemListener

    TU AS DEJA posté cette demande ici : http://www.developpez.net/forums/sho...d.php?t=259831
    Systèmes d'Informations Géographiques
    - Projets : Unlicense.science - Apache.SIS

    Pour un monde sans BigBrother IxQuick ni censure RSF et Les moutons

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    C'est vrai mais je n'zrrive pas à le faire fonctionner. Voici ce que j'ai tapé dans actionPerformed :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    			if (e.getSource() == maCombo) {
     
    				 JComboBox cb = (JComboBox)e.getSource();
    			     String titre = (String)cb.getSelectedItem();
     
    			     texte3.setText(titre); //On lui donne un texte
     
     
    			}//fin du traitement de
    Mais il ne se passe rien. Alors je sais je n'utilise pas ItemListener mais parce que je ne trouve pas d'exemple.

    @+

  4. #4
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 108
    Points : 3 203
    Points
    3 203
    Par défaut
    il fallait demander :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class AfficheFluxRss extends JFrame implements ActionListener,ItemListener{
    
    ....
    maCombo.addItemListener(this);
    .....
    
    public void ItemStateChanged( ItemEvent i ){
     //ici les action a faire sur un changement.
    }
    Systèmes d'Informations Géographiques
    - Projets : Unlicense.science - Apache.SIS

    Pour un monde sans BigBrother IxQuick ni censure RSF et Les moutons

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    Maintenant voilà mon source:
    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
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
     
    package mkrss;
     
    import java.awt.FlowLayout;
    import java.awt.Dimension;
    import javax.swing.*;
    import javax.swing.border.*;
    import java.awt.*; 
    import java.awt.event.*; 
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.ItemListener;
    import java.awt.AWTEvent;
    import java.io.*;
    import javax.xml.parsers.*;
    import org.w3c.dom.*;
    import javax.swing.JOptionPane;
     
    //http://tempsreel.nouvelobs.com/file/rss_perm/rss_permanent.xml
     
    public class AfficheFluxRss extends JFrame implements ActionListener, ItemListener {
     
     
     
    	private JPanel container2 = null;//Déclaration de l'objet JPanel	
    	private FlowLayout layout2 = null ;//Déclaration de notre layout
    	private JLabel texte2 = null;//Déclaration de l'objet JLabel
    	private JLabel texte3 = null;//Déclaration de l'objet JLabel
    	private JButton bouton2= null;//Déclaration du bouton
    	Choice maCombo = null;
    	JTextField urlfield = null;
    	OutilsDOM myutilzgui2;
     
    	public AfficheFluxRss ( OutilsDOM myutil){
    		super();		
    		build2(myutil);//On initialise notre fenêtre
    	}//Fin du second constructeur
     
    	private void build2(OutilsDOM myutil){
     
    		this.setTitle("Morad KALKOUL: parser de flux RSS"); //On donne un titre à l'application
    		this.setSize(800,400); //On donne une taille à notre fenêtre
    		this.setLocationRelativeTo(null); //On centre la fenêtre sur l'écran
    		this.setResizable(true) ; //On interdit la redimensionnement de la fenêtre
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //On dit à l'application de se fermer
    		//lors du clic sur la croix
    		//On lui spécifie un container principal
    		this.setContentPane(getContainer2(myutil));
     
    	}//fin de build
     
    	private JPanel getContainer2(OutilsDOM myutil){
     
    		this.maCombo = new Choice();
     
    		layout2 = new FlowLayout(); //Instanciation du layout
    		layout2.setAlignment(FlowLayout.LEFT);//On centre les composants
     
    		container2 = new JPanel() ; //On crée notre objet
    		container2.setLayout(layout2); //On applique le layout
     
    		texte2 = new JLabel() ;//On crée notre objet
    		texte2.setPreferredSize(new Dimension(250,200)) ;//On lui donne une taille
    		texte2.setText("Url: " + myutil.rssvct.unoeud.lastElement().fluxrss.toString()); //On lui donne un texte
     
     
     
     
    		container2.add(texte2);	
     
    		 myutilzgui2 = new OutilsDOM() ;
     
    		myutilzgui2 = myutil ;
     
     
    		//Remplissage de la liste déroulante.
     
    		for (int x = 0; x < this.myutilzgui2.rssvct.unoeud.size(); x++ ){
    			maCombo.add(x +1 + ". " + this.myutilzgui2.rssvct.unoeud.elementAt(x).titre);	
    		}//fin de for
     
    		maCombo.addItemListener(this);
     
    	    container2.add(maCombo);
     
    		//fin du remplissage de la liste.
     
    		texte3 = new JLabel() ;//On crée notre objet
    		texte3.setPreferredSize(new Dimension(250,200)) ;//On lui donne une taille
    		texte3.setText(""); //On lui donne un texte
    		container2.add(texte3);
     
    	    bouton2 = new JButton () ;//Création du bouton
    		bouton2.setPreferredSize(new Dimension(125,25)) ;//On lui donne une taille
    		bouton2.setText("Fermer") ;//On lui donne un texte    
    		container2.add(bouton2);
     
    		bouton2.addActionListener(this);//On ajoute la fenêtre en tant qu'écouteur du bouton
     
    		return container2 ;	
     
    }//Fin de getContainer2
     
     
    	public void ItemStateChanged( ItemEvent i ){
    		texte2.setText("ok ca marche");
     
    	}//Fin de itemStateChaged
     
     
     
     
     
     
    	public void actionPerformed(ActionEvent e){
     
    		try {
     
    			if(e.getSource() == bouton2){//Si l'action émane bien du bouton2
    				this.setVisible(false);
     
    			}// du traitement sur le bouton
     
     
     
    		}//Fin de try	
     
    	    	catch ( Exception e1 ){
     
     
    	    	}//fin de catch
     
     
    	}//Fin de actionPerformed
     
     
     
     
    }//Fin classe AfficheFluxRss
    Sous eclipse, pour cette ligne:
    public class AfficheFluxRss extends JFrame implements ActionListener, ItemListener

    j'ai une erreur qui dit:
    Severity and Description Path Resource Location Creation Time Id
    The type AfficheFluxRss must implement the inherited abstract method ItemListener.itemStateChanged(ItemEvent) Mkrss/mkrss AfficheFluxRss.java line 20 1168334059956 2824

    pourtant je le fais bien comme tu me l'avais dit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	public void ItemStateChanged( ItemEvent i ){
     
                     texte2.setText("ok ca marche");
     
    	}//Fin de itemStateChaged
    T'aurais une idée de ce que veut le compilateur ?

  6. #6
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 108
    Points : 3 203
    Points
    3 203
    Par défaut
    ItemStateChanged avec un I minuscule...

    itemStateChanged
    Systèmes d'Informations Géographiques
    - Projets : Unlicense.science - Apache.SIS

    Pour un monde sans BigBrother IxQuick ni censure RSF et Les moutons

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    OUPPSS! Désolé je vais ça en plus de mon boulot, manque de concentration...
    En tout cas merci beaucoup pour ton, votre aide, je vais pouvoir finir.

    @+

Discussions similaires

  1. Réponses: 3
    Dernier message: 15/07/2012, 00h01
  2. Réponses: 20
    Dernier message: 02/05/2010, 16h56
  3. Réponses: 9
    Dernier message: 12/04/2008, 17h26
  4. Réponses: 2
    Dernier message: 09/01/2007, 16h38
  5. Eviter l'affichage des éléments d'une liste déroulante
    Par auriolbeach dans le forum Access
    Réponses: 1
    Dernier message: 28/02/2006, 07h50

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