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 :

Problème de retour JSpinner


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Par défaut Problème de retour JSpinner
    Bonjour,
    J'ai un JSpinner pour choisir le temps d'une partie dans un de mes projets.
    J'aimerais récupérer la valeur selectionnée du JSpinner. cependant, je n'y arrive pas. Voici ma 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
     
    public class PanelTemps extends JPanel implements ActionListener 
    		{
    			//Spinner
    			String[] temps = {"1 minute","2 minutes","3 minutes","5 minutes","10 minutes","15 minutes","20 minutes","30 minutes"};
    			SpinnerModel model = new SpinnerListModel(temps);
    			JSpinner spinner = new JSpinner(model);
     
    			public PanelTemps() 
    			{
    				super(new BorderLayout());
     
    				String[] tempsStrings = {"Temps infini","Minutes par partie"};
    				// Les indices commencent à 0, jusqu'à 1 maintenantcar il n'y a que 2options dans le combobox
    				JComboBox tempsList = new JComboBox(tempsStrings);
    				tempsList.setSelectedIndex(1);
    				tempsList.addActionListener(this);
     
    				// JSpinner
    				spinner.setValue("10 minutes"); // Valeur initiale
    				spinner.addChangeListener(listener);
     
    				// Position du combobox et du JSpinner
    				add(spinner, BorderLayout.CENTER);
    				add(tempsList, BorderLayout.AFTER_LAST_LINE);
    				}
     
    				public void actionPerformed(ActionEvent e) 
    				{
    					JComboBox cb = (JComboBox)e.getSource();
    					String tempsName = (String)cb.getSelectedItem();
    					if(tempsName == "Minutes par partie")
    					{
    						spinner.setEnabled(true);
     
    						System.out.println("Minutes par partie selectionné");
    					}
    					if(tempsName == "Temps infini")
    					{
    						spinner.setEnabled(false);
    						System.out.println("Temps infini selectionné");
    					}
    				}
     
    				ChangeListener listener = new ChangeListener() 
    				{
    				      public void stateChanged(ChangeEvent e) 
    				      {
    				    					    	  System.out.println("Source :"+e.getSource());
     
    				      }
    				};	
    		}
    Lorsque je demande de m'afficher la source du JSpinner, j'obtiens cette ligne :

    Source :javax.swing.JSpinner[,0,0,147x20,invalid,layout=javax.swing.plaf.basic.BasicSpinnerUI$Handler,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.BorderUIResource$CompoundBorderUIResource@196f4b5,flags=16777544,maximumSize=,minimumSize=,preferredSize=]

    Quoi que je choisisse dans mon JSpinner, j'obtiens toujours cette ligne et je n'arrive pas à récupérer la source.

    Merci d'avance pour vos réponses. A+

  2. #2
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 83
    Par défaut
    Bonjour,

    à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ChangeListener listener = new ChangeListener() 
    {
          public void stateChanged(ChangeEvent e) 
          {
       	  System.out.println("Source :"+e.getSource());
          }
    };
    Tu devrais essayer ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ChangeListener listener = new ChangeListener() 
    {
          public void stateChanged(ChangeEvent e) 
          {
             JSpinner spin = (JSpinner)e.getSource();
             System.out.println("Choix="+spin.getValue().toString());
          }
    };
    A++

  3. #3
    Membre Expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Par défaut
    Salut,

    Je vois pas trop l'utilité de faire une "classe" ChangeListener dans ta classe principale... Tu peux implémenter plusieurs interface en Java ^^ (mais tu dois le savoir ). Et cette partie là me chagrine, parce que tu déclares 'listener' après coup :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    spinner.addChangeListener(listener);
    Je serais toi, j'implémenterais ChangeListener et après j'implémenterais la fonction stateChanged()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class PanelTemps extends JPanel implements ActionListener, ChangeListener
    Voilà, essaie, et tiens moi au courant

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Par défaut
    Je te remercie, ca marche nikel
    Merci également pour tes suggestions, je ne savais pas non que l'on pouvait implémenter plusieurs types de Listener, merci pour tes précisions.
    A+

  5. #5
    Membre Expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Par défaut
    Mais je t'en prie ^^

    Ca fais plaisir de recevoir des remerciements pour si peu
    Sinon, la méthode de NicoWrmCorp marche aussi

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

Discussions similaires

  1. Problème de retour à la ligne
    Par AurelBUD dans le forum Général JavaScript
    Réponses: 20
    Dernier message: 30/05/2006, 15h17
  2. show_hide un div: problème avec retour
    Par -DeN- dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/02/2006, 12h16
  3. Problème de retour aprés l'appel d'une popup
    Par PADAWANN33 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/02/2006, 15h53
  4. [MySQL] problème de retour à la ligne.
    Par NPortmann dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 29/09/2005, 14h43
  5. [Struts] Problème de retour chariot
    Par pimousse76 dans le forum Struts 1
    Réponses: 5
    Dernier message: 22/11/2004, 15h39

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