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

JavaFX Discussion :

Affichage de la valeur sélectionnée dans un comboBox


Sujet :

JavaFX

  1. #1
    Membre émérite
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Points : 2 371
    Points
    2 371
    Par défaut Affichage de la valeur sélectionnée dans un comboBox
    Bonjour,

    j'ai un comboBox dont la liste des valeurs est modifiée dynamiquement.
    Une fois que la liste des nouvelles valeurs est définies pour le comBox,
    j'arrive bien à sélectionner une valeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.comboBox.setValue("1");
    ... qui est surlignée (en bleu) dans la liste des valeurs,
    mais cette valeur n'apparaît pas à côté de la petite flèche
    qui permet d'afficher la liste des valeurs.

    Je cherche comment faire cela, merci de votre aide

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    As-tu écrit ta propre classe de modèle, ou utilises-tu un DefaultComboBoxModel ?

  3. #3
    Membre émérite
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Points : 2 371
    Points
    2 371
    Par défaut
    J'utilise le modèle par défaut DefaultComboBoxModel.

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Je ne vois pas de raison pour que ça ne fonctionne pas : si tu sélectionnes bien un élément qui est dans le modèle (et c'est le cas puisque la ligne correspondante est surlignée), il devrait s'afficher dans la partie éditeur de la combo.

    Peut être qu'en postant ton code (uniquement la partie qui concerne la combo), je verrai quelque chose.

    Voici un exemple de principe qui fonctionne, si ça peut te mettre sur la voie :

    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 DemoCombo { 
     
    		public static void main(String[] args) {
    			JFrame frame = new JFrame();
    			frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    			frame.getContentPane().setLayout(new BorderLayout());
     
    			JPanel panel = new JPanel();
    			panel.setLayout(new FlowLayout());
    			frame.getContentPane().add(panel);
     
    			final DefaultComboBoxModel<String> model = new DefaultComboBoxModel<>();
     
    			final JComboBox<String> comboBox = new JComboBox<>(model);
    			// comboBox.setEditable(true);
     
    			final JButton selectButton = new JButton("Select Pam");
    			selectButton.setEnabled(false);
    			selectButton.addActionListener(new ActionListener() {
     
    				@Override
    				public void actionPerformed(ActionEvent e) {
    					comboBox.setSelectedItem("Pam");
    				}
    			});
     
    			final JButton populateButton = new JButton("Remplir combo");
     
    			populateButton.addActionListener(new ActionListener() {
     
    				@Override
    				public void actionPerformed(ActionEvent e) {
    					for(String element : new String[]{"Pim","Pam","Poum"} ) {
    						model.addElement(element);
    					}
    					selectButton.setEnabled(true);
    					populateButton.setEnabled(false);
    				}
    			});
     
    			panel.add(comboBox);
    			panel.add(populateButton);
    			panel.add(selectButton);
     
    			frame.setSize(200,200);
    			frame.setLocationRelativeTo(null);
     
    			frame.setVisible(true);
     
    	}
     
    }

  5. #5
    Membre émérite
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Points : 2 371
    Points
    2 371
    Par défaut
    Ok

    Ton code a l'avantage d'être simple,
    en relisant mon code, déjà je me suis apperçu que j'avais laisser "trainer"
    une ligne, la dernière ligne mise en commentaire ci-dessous.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     /**
       * Initialize comboBoxPagination.
       */
      private void initializeComboBoxPagination() {
    	this.updateComboBoxPagination();
    	this.comboBoxPagination.setValue(String.valueOf(this.currentPageIndex));
    	this.comboBoxPagination.valueProperty().addListener(new ChangeListener<String>() {	  	
    	  @Override
    	  public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
    		setCurrentPageIndex(Integer.valueOf(newValue));
    		updateTableView();
    	  }
    	});
      }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     /**
       * Update comboBoxPagination.
       */
      private void updateComboBoxPagination() {	
    	int filteredDataSize = this.filteredData.size();
    	this.pageCount = filteredDataSize / this.itemsPerPage + ((filteredDataSize % this.itemsPerPage == 0) ? 0 : 1);		
    	this.comboBoxPagination.getItems().clear();
    	for (int i=1; i <= this.pageCount; i++) {
    	  this.comboBoxPagination.getItems().add(String.valueOf(i));
    	}	
    	this.comboBoxPagination.setValue(String.valueOf(this.currentPageIndex));
            // this.comboBoxPagination.getSelectionModel().getSelectedIndex();
      }

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Mmm, le setValue() et le getItems() me font penser que tu utilises du JAVAFX et pas du SWING : j'avais pas vu la section du forum . La, je ne peux pas te renseigner plus que ça : je ne connais pas JAVAFX. Mais en regardant, rapidement sur google, j'ai l'impression que la méthode setPromptText() devrait pouvoir te servir à régler ton problème.


    Sinon, puisque, visiblement, les valeurs que tu mets dans ta combo sont des nombres, tu peux éviter de faire des conversions en String, enfin en SWING en tout cas, mais je pense que c'est pareil en JAVAFX :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    final DefaultComboBoxModel<Integer> model = new DefaultComboBoxModel<>();
    final JComboBox<Integer> comboBox = new JComboBox<>(model);
    Et pour le remplissage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for(int i=1; i<=3; i++) {
       model.addElement(i);
    }

  7. #7
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 850
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 850
    Points : 22 861
    Points
    22 861
    Billets dans le blog
    51
    Par défaut
    Une question; non en fait deux : pourquoi est-ce que code initial est en Swing et la réponse en JavaFX (le ChangeListener) ? Et que fait cette question sur le forum FX (puisque ça concerne Swing à priori).

    Histoire que je vois s'il y a besoin de le déplacer ailleurs.

  8. #8
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par bouye Voir le message
    Une question; non en fait deux : pourquoi est-ce que code initial est en Swing et la réponse en JavaFX (le ChangeListener) ? Et que fait cette question sur le forum FX (puisque ça concerne Swing à priori).

    Histoire que je vois s'il y a besoin de le déplacer ailleurs.
    Non, désolé, c'est de ma faute : je n'ai pas fait attention que la section était JAVAFX, et j'ai cru que c'était une demande SWING, mais la question était bien, à priori, pour JAVAFX.

  9. #9
    Membre émérite
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Points : 2 371
    Points
    2 371
    Par défaut
    J'ai fini par trouver

    En fait, avec JavaFX, le texte du combox est géré par la méthode setPromptText;
    tandis que la valeur sélectionnée dans la liste du combox est gérée par la méthode setValue.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    this.comboBoxPagination.setPromptText(this.firstPageIndex.toString());
    this.comboBoxPagination.setValue(this.firstPageIndex);
    Merci.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 06/06/2011, 11h10
  2. [XL-2007] Affichage d'une valeur sélectionnée dans une Listbox
    Par jmh51 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/07/2010, 08h15
  3. [XL-2003] Aucune valeur sélectionnée dans le cadre du comboBox ?
    Par Mandrake31 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/03/2010, 20h16
  4. Récupérer ancienne valeur sélectionnée dans une combobox
    Par alys56 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 09/07/2008, 17h11
  5. Valeur sélectionnée dans un Combobox
    Par Kimahri01 dans le forum C++
    Réponses: 5
    Dernier message: 15/04/2008, 17h34

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