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 :

Comment rendre toutes les cellules d'un jtable éditables?


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 36
    Par défaut Comment rendre toutes les cellules d'un jtable éditables?
    Bonsoir,
    J'ai crée un jtable suivant un TableModel. Pour rendre les cellules éditables, j'ai utilisé la méthode isCellEditable(), comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @Override
        public boolean isCellEditable(int rowIndex, int columnIndex) {
     
            return true;
        }
    mais ceci fonctionnait que pour les valeurs String et pas ceux Integer!!

  2. #2
    Membre confirmé
    Homme Profil pro
    testeur logiciel
    Inscrit en
    Juin 2007
    Messages
    126
    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 : 126
    Par défaut
    A priori il n'y a pas de raison pour que toutes les cellules ne soient pas éditables.
    As tu implémenté les fonctions setValueAt(Object value, int column, int row) et getColumnClass?

    Quoi qu'il en soit je te conseille de suivre cet excellent tutoriel :
    http://baptiste-wicht.developpez.com.../swing/jtable/

  3. #3
    Membre averti
    Femme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 36
    Par défaut
    Oui j'ai implémenté les fonctions que vous avez mentionné, voici le code que j'ai saisi:

    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
    83
    84
     
    import java.util.List;
    import javax.swing.table.AbstractTableModel;
     
    import net.codejava.model.Employee;
     
    public class EmployeeTableModel extends AbstractTableModel
    {
        private final List<Employee> employeeList;
     
        private final String[] columnNames = new String[] {
                "Id", "Name", "Number"
        };
        private final Class[] columnClass = new Class[] {
            Integer.class, String.class, Integer.class
        };
     
        public EmployeeTableModel(List<Employee> employeeList)
        {
            this.employeeList = employeeList;
        }
     
        @Override
        public String getColumnName(int column)
        {
            return columnNames[column];
        }
     
        @Override
        public Class<?> getColumnClass(int columnIndex)
        {
            return columnClass[columnIndex];
        }
     
        @Override
        public int getColumnCount()
        {
            return columnNames.length;
        }
     
        @Override
        public int getRowCount()
        {
            return employeeList.size();
        }
     
        @Override
        public Object getValueAt(int rowIndex, int columnIndex)
        {
            Employee row = employeeList.get(rowIndex);
            if(0 == columnIndex) {
                return row.getId();
            }
            else if(1 == columnIndex) {
                return row.getName();
            }
            else if(2 == columnIndex) {
                return row.getNumber();
            }
     
            return null;
        } @Override
        public boolean isCellEditable(int rowIndex, int columnIndex)
        {
            return true;
        }
     
        @Override
        public void setValueAt(Object aValue, int rowIndex, int columnIndex)
        {
            Employee row = employeeList.get(rowIndex);
            if(0 == columnIndex) {
                row.setId((Integer) aValue);
            }
            else if(1 == columnIndex) {
                row.setName((String) aValue);
            }
            else if(2 == columnIndex) {
                row.setNumber((Integer) aValue);
            }
     
        }
     
    }

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/06/2015, 10h27
  2. [XL-2010] Comment selectioner toutes les cellules sauf les noires?!
    Par phoenix_md2006 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/05/2013, 09h55
  3. rendre les cellules d'un jTable éditables
    Par ifsera dans le forum Composants
    Réponses: 1
    Dernier message: 03/05/2013, 11h14
  4. [Swing / JTable] Rendre les cellules d'un JTable non éditables
    Par Jérôme_20 dans le forum Composants
    Réponses: 20
    Dernier message: 10/02/2011, 10h32
  5. Réponses: 8
    Dernier message: 18/08/2008, 21h18

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