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 :

Créer un JTable avec List<List<Object> et lui appliquer un CellEditor


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 108
    Par défaut Créer un JTable avec List<List<Object> et lui appliquer un CellEditor
    Bonjour,

    J'ai un tableau defini par son modele comme suit :
    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
    public class ModeleDynamiqueObjectTable extends AbstractTableModel {
     
    	// variables
    	private List<List<Object>> data;
    	private List<String> enteteColonnes;
     
    //autres methodes puis les Override
                 @Override
    	public int getRowCount() {
    		return data.size();
    	}
     
    	@Override
    	public int getColumnCount() {
    		return enteteColonnes.size();
    	}
     
    	@Override
    	public String getColumnName(final int columnIndex) {
    		return enteteColonnes.get(columnIndex);
    	}
     
    	@Override
    	public Object getValueAt(final int rowIndex, final int columnIndex) {
    		return data.get(rowIndex).get(columnIndex);
    	}
     
    	@Override
    	public void setValueAt(final Object aValue, final int rowIndex, final int columnIndex) {
    		data.get(rowIndex).set(columnIndex, aValue);
    	}
    Quand je creer mon tableau, je lui donne une liste d'entete et une list de list de données ou je peux avoir Integer, String, Double...

    J'aimerais appliquer un DefaultEditor pour chaque type. (exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    table.setDefaultEditor(Integer.class, new IntegerEditor(0, 100));
    )

    Or après plusieurs tentatives, pour lui tous mes types sont des Object il n'essai pas d'aller voir plus loin... (meme si je vais un modelTable.setValueAt(new Integer(5), 0, 0));
    Par contre si je lui applique un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    table.setDefaultEditor(Object.class, new IntegerEditor(0, 100));
    , il n'y a aucun problème mais tous mes types sont traité comme des Integer... :s

    Avez-vous une idée svp ?
    Dois-je forcement passé par un Object[][] data dans mon model ?

    Merci d'avance

  2. #2
    Membre éprouvé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2005
    Messages
    86
    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 : 86
    Par défaut
    Hello Noctis,

    Pour faire ce genre de chose (Avoir un Editor dynamique) , à ta place je ferais plutôt comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    table.setCellEditor(new TonPropreEditor());
    Avec cette définition :

    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
     
    public class TonPropreEditor extends AbstractCellEditor implements TableCellEditor {
     
        @Override
        public Object getCellEditorValue() {
            // TODO Auto-generated method stub
            return null;
        }
     
        @Override
        public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
            if (value instanceof Integer) {
                //Traitement
            } else if (value instanceof String) {
     
            } else if (value instanceof Toto) {
     
            }
            //.....
            return null;
        }
    }
    Cete Editor va te permettre de spécifier le Component à retourner pour chaque type d'objet (Cellule) dans ta table.

    Awane

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 108
    Par défaut
    Super merci
    ca fonctionne bien

  4. #4
    Membre éprouvé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2005
    Messages
    86
    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 : 86
    Par défaut
    Derien Noctis

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

Discussions similaires

  1. Importer une liste dans une JTable avec SWING
    Par samibipbip dans le forum Composants
    Réponses: 6
    Dernier message: 26/10/2011, 07h20
  2. Réponses: 2
    Dernier message: 19/05/2011, 11h17
  3. Réponses: 2
    Dernier message: 26/11/2009, 12h13
  4. Regrouper une liste en liste de listes
    Par West01 dans le forum Prolog
    Réponses: 12
    Dernier message: 14/03/2008, 14h07
  5. Réponses: 4
    Dernier message: 09/02/2005, 10h44

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