Publicité
+ Répondre à la discussion Actualité déjà publiée
Page 2 sur 2 PremièrePremière 12
Affichage des résultats 21 à 38 sur 38
  1. #21
    Invité de passage
    Inscrit en
    février 2011
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : février 2011
    Messages : 2
    Points : 2
    Points
    2

    Par défaut

    Merci pour ce tuto, il m'a bien aidé =D

    J'ai tout de même une question.

    J'ai 2 JTable qui sont censées afficher certaines informations enregistrées dans 2 listes différentes.
    Mon code fonctionnait pour l'affichage d'une JTable (merci ), mais je me suis retrouvé coincé pour la deuxième.

    Je poste une partie simplifiée de mon code source, puis je poserais ma question.

    Un première classe qui représente un attribut :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    public class ClassDiagramClassAttribute
    {
    	private int idAttribute;
    	private String name;
    	private String type;
    	private String value;
    	private String visibility;
            ...
     
        public ClassDiagramClassAttribute()
        {
     
        }
    ...
    Mes getters et setters
    ...
    }

    Un deuxième classe qui représente une opération :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    public class ClassDiagramClassOperation
    {
    	private int idOperation;
    	private String name;
    	private String type;
    	private String visibility;
            ...
     
        public ClassDiagramClassOperation()
        {
     
        }
    ...
    Mes getters et setters
    ...
    }
    Une troisième classe qui représente une classe (UML) :
    Code :
    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
    84
    85
    86
    87
    88
    89
    public class ClassDiagramClass extends AbstractTableModel
    {
    	private int idClass;
            ...
     
    	private List<ClassDiagramClassAttribute> attribute = new ArrayList<ClassDiagramClassAttribute>();
        private String[] columnNamesAttribute = {"", "Nom", "Type"};
     
    	private List<ClassDiagramClassOperation> operation = new ArrayList<ClassDiagramClassOperation>();
        private String[] columnNamesOperation = {"Nom", "Type", "Visibilité"};
     
        public ClassDiagramClass()
        {
     
        }
    ...
    Mes getters et setters
    ...
    	public void setAttribute(List<ClassDiagramClassAttribute> attribute)
    	{
    		this.attribute = attribute;
    	}
    	public List<ClassDiagramClassAttribute> getAttribute()
    	{
    		return attribute;
    	}
     
    	public void setOperation(List<ClassDiagramClassOperation> operation)
    	{
    		this.operation = operation;
    	}
    	public List<ClassDiagramClassOperation> getOperation()
    	{
    		return operation;
    	}
     
     
        public int getRowCount()
        {
    //************************* ICI ***************************
        		return getAttribute().size();
        		return getOperation().size();
        }
     
        public int getColumnCount()
        {
    //************************* ICI ***************************
        		return columnNamesAttribute.length;
        		return columnNamesOperation.length;
     
        }
     
        public String getColumnName(int columnIndex)
        {
    //************************* ICI ***************************
        		return columnNamesAttribute[columnIndex];
        		return columnNamesOperation[columnIndex];
        }
     
        public Object getValueAt(int rowIndex, int columnIndex)
        {
    //************************* ICI ***************************     
             if (columnIndex == 0)
            	return getAttribute().get(rowIndex).isKey();
     
            else if (columnIndex == 1)
                return getAttribute().get(rowIndex).getName();
     
            else if (columnIndex == 2)
                return getAttribute().get(rowIndex).getType();
     
            else
                return null; //Ne devrait jamais arriver
     
    //************************* ICI ***************************
            if (columnIndex == 0)
            	return getOperation().get(rowIndex).getName();
     
    		else if (columnIndex == 1)
    			return getOperation().get(rowIndex).getType();
     
            else if (columnIndex == 2)
                return getOperation().get(rowIndex).getVisibility();
     
            else
                return null; //Ne devrait jamais arriver
        }
    ...
    }
    Voilà.
    Etant encore débutant en Java, je m'excuse d'avance si mon code est mal écrit, et pour mes explications surement boiteuses. ='

    Donc mon problème est :
    Dans les méthodes getRowCount(), getColumnCount(), getColumnName(int columnIndex) et getValueAt(int rowIndex, int columnIndex), si on retire le/les return de trop, ça marche ( Je peux soit afficher mon JTable d'attributs, soit mon JTable d'opérations )
    Mais, j'aimerais afficher les deux. ( d'où les /*** ICI ***/ )

    Donc, est-ce-que vous connaissez un moyen afin de réaliser cela ? ( J'espère bêtement un simple if, mais on peut toujours rêver =' )
    Si non, avez-vous une idée à me proposer ?

    Merci d'avance, et bonne soirée.

    PS : Je ne sais pas si ça peut aider, mais les JTable s'affichent dans deux JFrame différentes, qui sont elles mêmes dans un JTabbedPane.

  2. #22
    Membre expérimenté
    Avatar de william44290
    Homme Profil pro William Rosenthal
    Responsable de service informatique
    Inscrit en
    juin 2009
    Messages
    400
    Détails du profil
    Informations personnelles :
    Nom : Homme William Rosenthal
    Âge : 50
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : juin 2009
    Messages : 400
    Points : 577
    Points
    577

    Par défaut

    je ferais trois abstractModel différent.

  3. #23
    Invité de passage
    Inscrit en
    février 2011
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : février 2011
    Messages : 2
    Points : 2
    Points
    2

    Par défaut

    Merci pour ta réponse.

    J'ai testé ton idée et elle marche
    Enfin, ça marche même pour deux AbstractTableModel ( Dans mon code, dans les classes ClassDiagramClassAttribute et ClassDiagramClassOperation, au lieu de ClassDiagramClass )

    Mais du coup, même si ça me plaît pas trop, j'en ai tout de même trois : j'ai une méthode permettant d'ajouter mon attribut/opération dans sa liste et aussi dans la JTable ; ça me faisait bizarre d'ajouter un attribut/opération dans la même class qui contient ses informations

  4. #24
    Membre expérimenté
    Avatar de william44290
    Homme Profil pro William Rosenthal
    Responsable de service informatique
    Inscrit en
    juin 2009
    Messages
    400
    Détails du profil
    Informations personnelles :
    Nom : Homme William Rosenthal
    Âge : 50
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : juin 2009
    Messages : 400
    Points : 577
    Points
    577

    Par défaut

    Comme toujours, tout est possible en java. Le problème c'est de choisir.

  5. #25
    Membre éclairé
    Profil pro Mickael
    Inscrit en
    mai 2010
    Messages
    247
    Détails du profil
    Informations personnelles :
    Nom : Mickael
    Âge : 26
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : mai 2010
    Messages : 247
    Points : 360
    Points
    360

    Par défaut

    Je cherchait justement une bonne solution d'affichage de tableau... et je suis tombé sur ton tutoriel qui est parfaitement clair à mes yeux.

    Merci et beau boulot, tu vas me faire gagner pas mal de temps
    C'est en aidant les autres qu'on en apprend beaucoup soi-même

  6. #26
    Invité de passage
    Femme Profil pro
    Développeur Web
    Inscrit en
    avril 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : avril 2011
    Messages : 6
    Points : 4
    Points
    4

    Par défaut Soucis

    Bonjour Baptiste

    merci déjà pour ton tuto très sympa, il m'a fait progresser pas mal.

    Ai un peu eu du mal car j'ai du adapter mon exercice. Mais ca en valait la peine. Jusque là (point 5), ca fonctionne très bien.

    Merci j'espère que tu feras d'autres tuto

  7. #27
    Rédacteur
    Avatar de thierryler
    Homme Profil pro Thierry Leriche-Dessirier
    Inscrit en
    octobre 2007
    Messages
    3 547
    Détails du profil
    Informations personnelles :
    Nom : Homme Thierry Leriche-Dessirier
    Localisation : France

    Informations forums :
    Inscription : octobre 2007
    Messages : 3 547
    Points : 9 910
    Points
    9 910

    Par défaut

    Bonjour et félicitations,

    Très bon article, associé à des remarques excellentes.

    J'y fais référence dans mes cours, ainsi que dans un prochain article.
    Thierry Leriche-Dessirier
    Consultant Java JEE Web Agile freelance
    Rédacteur pour Developpez
    Professeur de Génie Logiciel à l'ESIEA

    Site : http://www.icauda.com / Linked'in : http://www.linkedin.com/in/thierryler / Twitter : @ThierryLeriche
    Test DISC gratuit : http://www.profil4.com

  8. #28
    Membre confirmé Avatar de kalina
    Profil pro
    Inscrit en
    avril 2009
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : avril 2009
    Messages : 187
    Points : 203
    Points
    203

    Par défaut

    salut et merci pour l'article, ça va beaucoup m'aider car j'utilise souvent les JTables. Cependant j'aurais une petite question idiote: serait-il possible de supprimer une ou plusieurs cellules notamment sur la dernière ligne?
    je m'explique :par exemple si la dernière cellule de la dernière ligne correspond au total de ma denière colonne et qu'il n'ya rien à afficher sur les cellules qui précèdent le total, ben moi j'aurais voulu pouvoir les enlever tout bêtement!
    voilà, j'espère m'être bien expliquée!
    sinon merci et bonne continuation

  9. #29
    Invité régulier
    Inscrit en
    mars 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : mars 2005
    Messages : 6
    Points : 5
    Points
    5

    Par défaut probleme affichage

    Bonjour,

    Merci pour ce tuto, il est bien foutu! ;-)

  10. #30
    Membre actif Avatar de aljessy
    Homme Profil pro Guy Alexis
    Développeur Java
    Inscrit en
    octobre 2010
    Messages
    275
    Détails du profil
    Informations personnelles :
    Nom : Homme Guy Alexis
    Âge : 27
    Localisation : Cameroun

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

    Informations forums :
    Inscription : octobre 2010
    Messages : 275
    Points : 156
    Points
    156

    Par défaut

    Bonjour, tout d'abord merci pour ce tutoriel. Mais j'ai un petit problème. En fait je me suis basé sur ce tutoriel pour créer un tableau à trois colonnes et parmi l'une des colonnes, j'ai l'une qui contient un checkbox. Je n'arrive pas à pouvoir décocher le checkbox une fois que je clique dessus. voici à quoi ressemble ma méthode getColumnClass.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     public Class getColumnClass(int columnIndex){
            switch(columnIndex){
                case 0:
                    return Color.class;
                case 2:
                	return Boolean.class;
                default:
                    return Object.class;
            }
        }
    Maintenant comment faire pour que l'on puisse editer ce checkbox? J'ai penser à crée une méthode qui étend un DefaultTableCellRenderer mais je ne sais pas comment l'implémenter et même si c'est le meilleur moyen de proceder
    Faire aisément ce qui est difficile aux autres, voilà le talent. Faire ce qui est impossible au talent, voilà le génie.

  11. #31
    Modérateur
    Avatar de sinok
    Profil pro
    Inscrit en
    août 2004
    Messages
    8 762
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : août 2004
    Messages : 8 762
    Points : 12 849
    Points
    12 849

    Par défaut

    Pas besoin de ça. Normalement, par défaut, la JTable te met bien une JCheckBox éditable pour les colonnes renvoyant Boolean.class.

    As tu pensé à rendre ta colonne éditable dans ton modèle (renvoyer true dans la méthode isCellEditable pour la colonne en question)
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  12. #32
    Membre actif Avatar de aljessy
    Homme Profil pro Guy Alexis
    Développeur Java
    Inscrit en
    octobre 2010
    Messages
    275
    Détails du profil
    Informations personnelles :
    Nom : Homme Guy Alexis
    Âge : 27
    Localisation : Cameroun

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

    Informations forums :
    Inscription : octobre 2010
    Messages : 275
    Points : 156
    Points
    156

    Par défaut

    As tu pensé à rendre ta colonne éditable dans ton modèle (renvoyer true dans la méthode isCellEditable pour la colonne en question)
    Oui je l'ai fait sauf que ma colonne n'est toujours pas éditable. Pour plus de précision, mon tableau a trois colonnes la première recoit une couleur, la seconde une chaine de caractère et la troisième un booléen. voici l'instruction de j'utilise pour ajouter une ligne à mon tableau:
    Code :
    lignes.add(new LigneTab(Color.blue, evt.getIdOM(), new Boolean(true)));
    et voici mes méthode getValuesAt(..) et isCellEditable(..)

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    @Override
    	public Object getValueAt(int rowIndex, int columnIndex) {
    		switch (columnIndex) {
    			case 0:
    				return lignes.get(rowIndex).getCouleur();
    			case 1:
    				return lignes.get(rowIndex).getAvatar();
    			case 2:
    				return lignes.get(rowIndex).isAffiche();	
    			default:
    				return null;
    		}
     
    	}
     
    	public boolean isCellEditable(int rowIndex, int columnIndex) {
            if (columnIndex > 1) {
                return true;
            } else {
                return false;
            }
        }
    D'où peut venir mon problème
    Faire aisément ce qui est difficile aux autres, voilà le talent. Faire ce qui est impossible au talent, voilà le génie.

  13. #33
    Membre actif Avatar de aljessy
    Homme Profil pro Guy Alexis
    Développeur Java
    Inscrit en
    octobre 2010
    Messages
    275
    Détails du profil
    Informations personnelles :
    Nom : Homme Guy Alexis
    Âge : 27
    Localisation : Cameroun

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

    Informations forums :
    Inscription : octobre 2010
    Messages : 275
    Points : 156
    Points
    156

    Par défaut

    J'ai résolu mon problème. juste que j'avais oublier la fonction setValueAt(..)
    Faire aisément ce qui est difficile aux autres, voilà le talent. Faire ce qui est impossible au talent, voilà le génie.

  14. #34
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    août 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : août 2012
    Messages : 3
    Points : 4
    Points
    4

    Par défaut

    Cet article est très intéressant, merci !

  15. #35
    Invité régulier
    Inscrit en
    octobre 2005
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : octobre 2005
    Messages : 21
    Points : 5
    Points
    5

    Par défaut

    Très bon tuto, cela m'a beaucoup aidé dans mon projet.

    Une petite question : j ai transformé le code pour gérer une filmothèque.
    Tout fonctionne, mais j'utilise une des colonnes pour afficher une affiche de film (ImageIcon).

    J'ai comme résultat le haut de l'affiche affiché sur la hauteur de la ligne du tableau. Comment adapter la hauteur des lignes par rapport aux composants ?

    Merci, et bravo pour ce tuto.

  16. #36
    Candidat au titre de Membre du Club
    Homme Profil pro Charles Laurent
    Étudiant
    Inscrit en
    octobre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Nom : Homme Charles Laurent
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2010
    Messages : 30
    Points : 11
    Points
    11

    Par défaut Création interface graphique avec Swing : les tableaux (JTable)

    Très bon tuto, step by step, bien écrit et expliqué.

  17. #37
    Membre actif
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    août 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : août 2005
    Messages : 85
    Points : 158
    Points
    158

    Par défaut

    C'est du très beau travail @Baptiste
    Si mon message t'a aidé, un petit ne fera pas de mal
    Pensez aussi à

  18. #38
    Membre du Club
    Homme Profil pro
    testeur logiciel
    Inscrit en
    juin 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : testeur logiciel
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : juin 2007
    Messages : 106
    Points : 65
    Points
    65

    Par défaut Un grand merci!!

    Merci pour ce tuto très bien fait et complet.
    J'ai enfin compris comment construire correctement une JTable.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •