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 :

combobox dans une cellule


Sujet :

AWT/Swing Java

  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 36
    Par défaut combobox dans une cellule
    Bonjour à tous voila je travail sur un projet sous jbuilder, je c'est que cette question est tres redondante ( j'ai parcourus tout les articles du forum ainsi que les tuto de chez sun d'où je me suis d'ailleurs basé pour construire mon code), mais rien a faire la combobox ne veu pas s'afficher, pourtant jbuilder ne détecte pas d'erreurs, je suis depuis toute la matiné dessus et je commence un peu a perdre patience surtout que mon boss veux des progres rapides

    Voici le code de mon model de table :
    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
    import javax.swing.DefaultCellEditor;
    import javax.swing.JComboBox;
    import javax.swing.JTable;
    import javax.swing.table.AbstractTableModel;
    import javax.swing.table.DefaultTableCellRenderer;
    import javax.swing.table.TableColumn;
     
    class MyTableModel extends AbstractTableModel {
     
     
            private String[] columnNames = {"Date",
                                            "Echéance",
                                            "Mode_de_paiement",
                                            "Libellé",
                                            "Montant"};
            private Object[][] data = {
                {"", "",
                "", new Float(1.254), new Integer (5)},
            };
     
            public int getColumnCount() {
                return columnNames.length;
            }
     
            public int getRowCount() {
                return data.length;
            }
     
            public String getColumnName(int col) {
                return columnNames[col];
            }
     
            public Object getValueAt(int row, int col) {
                return data[row][col];
            }
     
     
            /*
             * JTable uses this method to determine the default renderer/
             * editor for each cell.  If we didn't implement this method,
             * then the last column would contain text ("true"/"false"),
             * rather than a check box.
             */
            public Class getColumnClass(int c) {
                return getValueAt(0, c).getClass();
            }
     
            /*
             * Don't need to implement this method unless your table's
             * editable.
             */
            public boolean isCellEditable(int row, int col) {
                //Note that the data/cell address is constant,
                //no matter where the cell appears onscreen.
                if (col < 2) {
                    return false;
                } else {
                    return true;
                }
            }
     
        public void setUpMode_de_paiement(JTable tableau2,
            TableColumn Mode_de_paiement) {
            setUpMode_de_paiement(tableau2, tableau2.getColumnModel().getColumn(3));
        //Set up the editor for the sport cells.
        JComboBox comboBox = new JComboBox();
        comboBox.addItem("Snowboarding");
        comboBox.addItem("Rowing");
        comboBox.addItem("Knitting");
        comboBox.addItem("Speed reading");
        comboBox.addItem("Pool");
        comboBox.addItem("None of the above");
        Mode_de_paiement.setCellEditor(new DefaultCellEditor(comboBox));
     
        //Set up tool tips for the sport cells.
        DefaultTableCellRenderer renderer =
                new DefaultTableCellRenderer();
        renderer.setToolTipText("Click for combo box");
        Mode_de_paiement.setCellRenderer(renderer);
     
    }
            }
    Et ici celui ci ou j'appel mon tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public JTable getTableau2() {
    			if (tableau2 == null) {
    				tableau2 = new JTable();
    				tableau2.setColumnSelectionAllowed(true);
    				MyTableModel model= new MyTableModel();
    				tableau2.setModel(model);
     
    			}
    			return tableau2;
    		}
    Je pense que je ne suis pas loin d'y arrivé mais quelque chose doit m'échappé, dsl si cela parait facile je n'ai commencé qu'il y a 2 semaines..
    Merci d'avance pour votre aide

  2. #2
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 36
    Par défaut
    Quelqu'un aurait-t-il une réponse ou tout du moins une piste? je suis un peu desespéré la

  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,

    Cette fonction me frise les poils de la barbe...
    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
     public void setUpMode_de_paiement(JTable tableau2,
                TableColumn Mode_de_paiement) {
        setUpMode_de_paiement(tableau2, tableau2.getColumnModel().getColumn(3));
        //Set up the editor for the sport cells.
        JComboBox comboBox = new JComboBox();
        comboBox.addItem("Snowboarding");
        comboBox.addItem("Rowing");
        comboBox.addItem("Knitting");
        comboBox.addItem("Speed reading");
        comboBox.addItem("Pool");
        comboBox.addItem("None of the above");
        Mode_de_paiement.setCellEditor(new DefaultCellEditor(comboBox));
     
        //Set up tool tips for the sport cells.
        DefaultTableCellRenderer renderer =
                new DefaultTableCellRenderer();
        renderer.setToolTipText("Click for combo box");
        Mode_de_paiement.setCellRenderer(renderer);
     
    }
    Tu fais un appel récursif à ta fonction au tout début donc, ton programme ne rentre pas dans la seconde partie et ne peux pas créer ta ComboBox. De plus, comme il s'agit de la fonction dans laquelle tu crée ta ComboBox il faut que tu t'en serves dans ta fonction qui utilise ton tableau...
    Enfin, c'est pas très clair ton programme (désolé de te le dire )

    Essaie d'être juste un poil plus précis

  4. #4
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 36
    Par défaut
    oui je sais que ce n'est pas clair :/ c'est un mélange de copier collé et de modifications et je suis un peu paumé, mais je suis incapable de faire ca tout seul, je ne voit pas en quoi je pourrait etre plus précis

  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
    Attends, reprenons tout les 2 notre souffle

    Bon, à quoi te sert la première ligne de ta fonction setUpMode_de_paiement ?
    Ensuite, est-ce que tu appelles cette fonction quand tu te sers de ton JTable?

    On va commencer par là, puis après on verra au fur et à mesure

  6. #6
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 36
    Par défaut
    j'avou que je ne sais pas a quoi cela sert ( pur copié collé ) et non je ne m'en sert pas apres, en gros cela ne sert a rien ?

  7. #7
    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


    Bon, en gros t'as fonction setUpMode_de_paiement fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Appel à setUpMode_de_paiement 
    Appel à setUpMode_de_paiement 
    Appel à setUpMode_de_paiement 
    Appel à setUpMode_de_paiement 
    Appel à setUpMode_de_paiement 
    Appel à setUpMode_de_paiement 
    Appel à setUpMode_de_paiement 
    Appel à setUpMode_de_paiement 
    Appel à setUpMode_de_paiement
    Et ceci, tout le temps avec les mêmes paramètres, mais comme tu l'appelles pas, tu n'as pas pu te rendre compte que tu avais une boucle infini

  8. #8
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 36
    Par défaut
    A d'accord plutot sympathique oO

  9. #9
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 36
    Par défaut
    en gros il faut que j'appel cette fonction quand je déclare mon tableau?

  10. #10
    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
    En gros, je pense que c'est ça ^^
    Mais à ce moment là, enlève la ligne en question de ta fonction

    Essaie, et dis moi

  11. #11
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 911
    Billets dans le blog
    54
    Par défaut
    Outre ce probleme de recursivite, tu dis que la combo n'apparait pas. Mais elle n'apparait pas ... de base ? ou elle n'apparait pas quand tu edites la cellule ? Car avec un DefaultTableCellRenderer par defaut il est normal que la combo ne s'affiche pas tant que tu ne te met pas a editer la cellule.

    Si tu veux donc que la fleche soit toujours visible il va te falloir creer un renderer maison utilisant une JComboBox (exactement ce que fait DefaultCellEditor en fait). Ce n'est guere complique a mettre en place surtout qu'avec un renderer, il n'y a pas d'evenement de selection et d'edition a gerer.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  12. #12
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 36
    Par défaut
    bah en fait elle n'apparait pas des le début et ni quand je clique dans le champs, ca fait comme si j'avais un texfield classique

  13. #13
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 36
    Par défaut
    Voila comment j'essaye d'appeler ma fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public JTable gettableau2() {
    			if (tableau2 == null) {
    				tableau2 = new JTable();
    				tableau2.setColumnSelectionAllowed(true);
    				MyTableModel model= new MyTableModel();
    				tableau2.setModel(model);
    				setUpMode_de_paiement(TableColumn Mode_de_paiement);
     
     
     
     
    			}
    			return tableau2;
    mais il me retourne des erreurs :
    erreur de syntaxe sur le sème Mode_de_paiement, supprimez ce sème
    TableColumn ne peut être résolu

  14. #14
    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
    Tout à fais normal, tu n'appelles pas la fonction setUpMpde_de_Paiment comme il faut... Je te conseille un petit retour aux sources (cours de Java accéléré )

    Sinon, il vaudrait mieux que tu fasses :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public JTable gettableau2() {
    	if (tableau2 == null) {
    		tableau2 = new JTable();
    		tableau2.setColumnSelectionAllowed(true);
    		MyTableModel model= new MyTableModel();
    		tableau2.setModel(model);
    		model.setUpMode_de_paiement(tableau2, tableau2.getColumnModel().getColumn(3));
     	}
    	return tableau2;
    }
    Essaie cet appel et dis nous si tu as toujours ton message d'erreur

  15. #15
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 36
    Par défaut
    non l'erreur de s'affiche plus mais quand j'execute le programme c la page qui ne s'affiche plus

    PS : pour les source je ne les ai pas vu quon ma direct posé sur une interface graphique a faire ( ayant aucune connaissances en java ni en objet oO )

  16. #16
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 36
    Par défaut
    il n'y a plus personne? ^^

  17. #17
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 36
    Par défaut
    merci pour vos réponses mais mon boss m'a dit de lacher l'affaire donc je vais me consacrer à autre chose , si jamais je trouve ultèrieurement je posterais la solution

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 16/03/2010, 09h58
  2. Combobox dans une cellule d'un datagridview
    Par mhamdi45 dans le forum VB.NET
    Réponses: 4
    Dernier message: 31/03/2009, 20h14
  3. Réponses: 2
    Dernier message: 30/10/2008, 13h28
  4. [JTable] Ajouter un combobox dans une cellule
    Par monpseudonom dans le forum Composants
    Réponses: 1
    Dernier message: 08/04/2008, 00h34
  5. jtable, combobox dans une cellule
    Par fraco dans le forum Composants
    Réponses: 8
    Dernier message: 27/10/2007, 11h20

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