5 votes

Ajouter une colonne au modèle de table sortant

J'ai une classe ;

public class A extends AbstractTableModel
{
 ...
}

En utilisant ResultSetMetaData, je construis le TableModel pour qu'il corresponde à mon jeu de résultats provenant de la base de données.

public class B extends JPanel
{
 ...
}

En classe B où j'ai étendu le JPanel et ajouté classe A pour montrer ma table. Je souhaite pouvoir ajouter de nouvelles colonnes en fonction d'une condition au modèle de table. J'ai essayé de chercher sur Google mais la plupart des exemples présentés sont basés sur le modèle de la table. DefaultTableModel pas AbstractTableModel .

Quelqu'un sait-il comment y parvenir ?

0voto

Arvanem Points 548

J'ai adapté la méthode addColumn de DefaultTableModel à un AbstractTableModel personnalisé comme suit. Supposons que les identifiants des colonnes (en-têtes) et les données du modèle (localCache) soient des listes de tableaux - les données du modèle étant une liste de tableaux d'une liste de tableaux.

public void addColumn(String columnName, List columnData) {
    headers.add(columnName);
    colCount = headers.size();
    if (columnData != null) {
        for (int r = 0; r < localCache.size(); r++) {
            ((List)localCache.get(r)).add(columnData.get(r));
        }
    } else {
        System.out.println("Null columnData passed");
    }
    fireTableStructureChanged();
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X