JTable + getColumnClass() renvoie null si une cellule contient une valeur NULL
Je suis en train de trier mes JTable en étendant DefaultTableModel et overrriding getColumnClass() comme suit:
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
Il fonctionne parfaitement bien si il n'y a pas de valeur NULL dans la table de la cellule.
Alors je l'ai modifié comme il suit:
public Class getColumnClass(int c) {
for(int rowIndex = 0; rowIndex < data.size(); rowIndex++){
Object[] row = data.get(rowIndex);
if (row[c] != null) {
return getValueAt(rowIndex, c).getClass();
}
}
return getValueAt(0, c).getClass();
}
Maintenant, encore une fois, il fonctionne très bien si il y a au moins une cellule dans la colonne qui n'est pas NULL.
Mais si toutes les cellules de la colonne est NULL, il ne fonctionne pas ('casue il retourne nullPointerException).
Veuillez ............de l'aide....
merci d'avance
Hasan
OriginalL'auteur Hasan | 2011-11-22
Vous devez vous connecter pour publier un commentaire.
Choisir "par défaut" de type. de retour String.class; est tout à fait sûr de la solution.
Si je le fais, il n'y aura pas de tri Entier correctement.
public Class getColumnClass(int c) { for(int rowIndex = 0; rowIndex < les données.size(); rowIndex++){ Object[] ligne = data.get(rowIndex); if (ligne[c] != null) { return getValueAt(rowIndex, c).getClass(); } } return String.class; } résolu le problème en retournant String.class si toutes les cellules de la colonne est NULL.
Oui, c'est exactement ce que je veux dire.
OriginalL'auteur execc
Savez-vous de quel type vous attendez de chaque colonne pour contenir avant de la main?
Si oui, alors vous pouvez construire un tableau avec les objets de la classe et il suffit de retourner la.
eh bien, votre seule option est de faire ce que les autres réponses proposées et de choisir quelque chose pour revenir lorsque la valeur est null.
OriginalL'auteur Eric Rosenberg
C'est le code que j'utilise:
OriginalL'auteur camickr
Il est extrêmement simple de résoudre ce problème. Regardez les changements de code que j'ai fait. Ce code a été testé et est exempt d'erreur
OriginalL'auteur jordao Manguena
Résolu le problème par retour de String.class si toutes les cellules de la colonne est NULL
OriginalL'auteur Hasan