Maison > Java > javaDidacticiel > Pourquoi mes lignes JTable sont-elles dupliquées et comment puis-je y remédier à l'aide de « fireTableStructureChanged() » ?

Pourquoi mes lignes JTable sont-elles dupliquées et comment puis-je y remédier à l'aide de « fireTableStructureChanged() » ?

Susan Sarandon
Libérer: 2024-12-22 10:05:46
original
790 Les gens l'ont consulté

Why Are My JTable Rows Duplicating, and How Can I Fix It Using `fireTableStructureChanged()`?

Doublons de ligne JTable : résoudre la cause profonde

Dans ce cas, le problème des valeurs en double dans la ligne JTable provient d'une implémentation incorrecte de la méthode fireTableDataChanged() dans le CollectionDataModel personnalisé.

Implémentation correcte de fireTableDataChanged()

La méthode fireTableDataChanged() doit informer le JTable que les données sous-jacentes ont changé, déclenchant la mise à jour de l'affichage de la table. Dans l'extrait de code fourni, la méthode ne semble pas être implémentée.

Pour l'implémenter correctement, ajoutez le code suivant à la fin de la méthode populate() :

fireTableStructureChanged();
Copier après la connexion

Explication

La méthode fireTableStructureChanged() indique que la structure des données, comme le nombre de colonnes ou de lignes, a changé. Cela déclenche la reconstruction correcte de ses colonnes et de ses lignes par la table.

Exemple de code

Voici le code corrigé avec la méthode fireTableStructureChanged() implémentée :

public void populate(Collection c) {
    data.clear();
    for(Item i : c.getItems()) {
        ArrayList<String> row = new ArrayList<String>();
        for(Property p : i.getProperties().values()) {
            row.add(p.toString());
        }
        data.add(row);
    }
    fireTableStructureChanged();
}
Copier après la connexion

En implémentant correctement la méthode fireTableStructureChanged(), la table sera mise à jour correctement lorsque de nouvelles données seront renseignées, empêchant ainsi le apparition de lignes en double.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal