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

Composants Java Discussion :

Remplir les champs en fonction d'une sélection d'une JCombobox


Sujet :

Composants Java

  1. #1
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2008
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 382
    Points : 191
    Points
    191
    Par défaut Remplir les champs en fonction d'une sélection d'une JCombobox
    Bonjour à tous,

    J'utilise une Jtable pour faire une liste d'achat.
    Je cherche a pré-remplir les champs par défaut en sélectionnant un item d'une combobox.

    Presque tous fonctionne, mais je n'ai pas la bonne valeur de la sélection.
    A voir la photo liée au message.

    Je m'explique:
    Lorsque je sélectionne un article et que je valide ça m'affiche l'article précédemment sélectionné.

    Voici mon code:
    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
    import java.awt.Component;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
     
    import javax.swing.DefaultCellEditor;
    import javax.swing.JComboBox;
    import javax.swing.JTable;
     
    public class ComboEditor extends DefaultCellEditor {
    	JComboBox combo2;
    	private ComboBoxListener cListener = new ComboBoxListener();
     
    	public ComboEditor(JComboBox combo) {
    		super(combo);
    		//On crée à nouveau notre bouton
    		combo2=combo;
    	    //On lui attribue un listener
    		combo2.addActionListener(cListener);
    		System.out.println("fin");// test
     
    	}
     
    	public Component getTableCellEditorComponent(JTable table, Object value,
                boolean isSelected, int row, int column) {
    		//On définit la valeur de la ligne à notre listener
    		cListener.setValue(value);
    		//On définit le numéro de ligne à notre listener
    		cListener.setRow(row);
    		//Idem pour le numéro de colonne
    		cListener.setColumn(column);
    		//On passe aussi le tableau pour des actions potentielles
    		cListener.setTable(table);
    		System.out.println("update");// test
     
    		return combo2;		
    	}
    	public class ComboBoxListener implements ActionListener {
    		private int column, row;
    		private Object value;
    		private JTable table;
     
    		public void setColumn(int col){this.column = col;}
    		public void setRow(int row){this.row = row;}
    		public void setTable(JTable table){this.table = table;}
    		public void setValue(Object value){this.value = value;}
     
    		public void actionPerformed(ActionEvent event) {
    			System.out.println("toto"+value);// test
    	    	table.setValueAt("New Value 3"+value, this.row, (this.column +1));
    	    }
    	}
    }
    Dans la cosole voici ce que j'obtiens:
    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
    0
    fin
    update
    toto
    update
    totoJus de tomate
    update
    totoJus de raisin
    update
    totoJus de tomate
    update
    totoSirop
    update
    totoJus de tomate
    update
    totoJus de tomate
    update
    totoJus d'orange
    update
    totoJus d'abricot
    update
    totoJus de tomate
    update
    totoJus d'abricot
    update
    totoEau 50cl
    1
    fin
    update
    toto
    update
    totoCoca-Cola
    update
    totoJus de tomate
    Lorsque je sélectionne Jus de tomate, dans la console j'ai: toto
    Lorsque je sélectionne Jus de raisin, dans la console j'ai: Jus de tomate

    Comment supprimer ce décalage.
    J'ai regardé du coté du listener du combobox mais ça n'a rien donné.

    Merci pour vos idées.

  2. #2
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2008
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 382
    Points : 191
    Points
    191
    Par défaut
    Désolé, j'ai trouvé une autre solution, récupérer directement la valeur sélectionnée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    JComboBox cb = (JComboBox)event.getSource();
    	        String article = (String)cb.getSelectedItem();
    Excusé moi pour ce post inutile.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 6
    Points : 8
    Points
    8
    Par défaut
    Bonjour , s'il vous plait puisque vous êtes parvenu à résoudre ce problème donc vous saurez a priori comment faire pour la mise à jour d'un Jtable à partir de la sélection de mon jcombobox . Je m'explique: j'ai un jtable qui affiche toutes les informations concernant un archive par service et il y'a plusieurs services. mon jcombobox contient les service: je veux afficher tous les archives qui sont affectés à un service donnée une fois je sélectionne le service sur le jcombobox ... AIDEZ moi svvvp je fais une application pour mon stage et il me reste plus que 3 jours pour l'achever

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 6
    Points : 8
    Points
    8
    Par défaut
    le problème est que l'affichage sur le jtable se fait juste pour l'item sélectionné par défaut une fois je sélectionne un autre aucun changement ne se fait .. :/ quelqu'un pourra t'il m'aider svp ?!!

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

Discussions similaires

  1. Afficher une recherche après une sélection dans une ListBox
    Par vitalus dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/05/2015, 18h04
  2. Réponses: 14
    Dernier message: 11/03/2014, 09h01
  3. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 17h37
  4. Comment faire une recherche dans une combobox et une sélection automatique
    Par VictoriusDan dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/12/2009, 16h17
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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