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 :

Problem Listener JComboBox


Sujet :

AWT/Swing Java

  1. #1
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 10
    Par défaut Problem Listener JComboBox
    Bonjour
    Je veux créer une interface swing qui contient deux combobox combo1 et combo2
    Combo 1 : contient un événement even1 qui s’exécute après chaque changement de l’élément sélectionne.
    Combo2 : contient un événement even2 qui change l’élément affiche de combo1 sans exécute l’even1.
    Donc j’ai pensé d’ajouter :
    1- Un MouseListener à combo1 qui contient even1 mais le problème que l’événement ne s’exécute pas qu’après un autre clic sur l’élément choisi (c.-à-d. le faite de choisir un élément avec le sourie n’entraine pas que even1 sera exécuter).
    2- Un ActionListener à combo1 qui contient even1 mais le problème que l’événement even1 s’exécute aussi après changement provienne de l’even2 de combo2.
    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
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
     
    class EssaiChoix extends JPanel implements ItemListener {
    	JComboBox combo1 = new JComboBox();
    	JComboBox combo2 = new JComboBox();
    	Ardoise ardoise = new Ardoise();
     
    	EssaiChoix() {
    		JPanel panneau = new JPanel();
    		combo1.addItem("noir");
    		combo1.addItem("rouge");
    		combo1.addItem("vert");
    		combo1.addItem("bleu");
    		combo1.addItem("jaune");
    		combo1.setToolTipText("combo1");
    		combo2.addItem("1");
    		combo2.addItem("2");
    		combo2.addItem("3");
    		combo2.addItem("4");
    		combo2.addItem("5");
    		combo2.setToolTipText("combo2");
    		panneau.add(combo1);
    		panneau.add(combo2);
    		combo1.addMouseListener(new MouseAdapter() {
    			public void mouseReleased(MouseEvent e) {
    				ardoise.setForeground(getCouleur((String) combo1
    						.getSelectedItem()));
    			}
    		});
    		combo2.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				combo1.setSelectedIndex(combo2.getSelectedIndex());
    			}
    		});
    		setLayout(new BorderLayout(5, 5));
    		add(panneau, BorderLayout.NORTH);
    		add(panneau, BorderLayout.EAST);
    		add(ardoise, BorderLayout.CENTER);
    	}
     
    	public void itemStateChanged(ItemEvent evt) {
    		ardoise.setForeground(getCouleur((String) combo1.getSelectedItem()));
    	}
     
    	Color getCouleur(String s) {
    		if (s.equals("noir"))
    			return Color.black;
    		else if (s.equals("rouge"))
    			return Color.red;
    		else if (s.equals("vert"))
    			return Color.green;
    		else if (s.equals("bleu"))
    			return Color.blue;
    		else if (s.equals("jaune"))
    			return Color.yellow;
    		return Color.black;
    	}
     
    	public static void main(String[] argv) {
    		JFrame monCadre = new JFrame();
    		monCadre.setContentPane(new EssaiChoix());
    		monCadre.addWindowListener(new WindowAdapter() {
    			public void windowClosing(WindowEvent e) {
    				System.exit(0);
    			}
    		});
    		monCadre.pack();
    		monCadre.setVisible(true);
    	}
    }
     
    class Ardoise extends JPanel {
    	Ardoise() {
    		setPreferredSize(new Dimension(100, 100));
    	}
     
    	public void paintComponent(Graphics g) {
    		super.paintComponent(g);
    		g.drawOval(10, 10, 80, 80);
    	}
    }
    Merci d'avance.
    Cordialement

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Par défaut
    Salut,

    J'utiliserai le ActionListener et supprimerai puis enlèverai le listener de combo1 pour faire le setSelectedIndex tranquillement.

    Après il y a peut-être mieux..

    A

  3. #3
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 10
    Par défaut
    bonjour,
    merci infiniment pour le moment j'ai utilisé cette méthode on attendant une autre encore mieux
    cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme de JComboBox
    Par haffouff dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 20/04/2007, 09h34
  2. Probleme Listener sur JSpinner ou dans class
    Par croc14 dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 28/03/2007, 09h37
  3. probleme initialisation JComboBox
    Par mogur dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 20/10/2006, 15h45
  4. Probleme listener 12518 / 12564
    Par genio dans le forum Connexions aux bases de données
    Réponses: 1
    Dernier message: 13/07/2006, 10h56
  5. Probleme entre JComboBox/CheckBox
    Par bygui dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 11/05/2006, 11h26

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