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

  1. #1
    Nouveau membre du Club
    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
    Points : 26
    Points
    26
    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 actif
    Homme Profil pro
    testeur logiciel
    Inscrit en
    Juin 2007
    Messages
    125
    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 : 125
    Points : 211
    Points
    211
    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
    Nouveau membre du Club
    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
    Points : 26
    Points
    26
    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