Comment insérer une colonne à une position spécifique dans JTable
J'ai une JTable avec un modèle prédéfini
comment poser le modèle pour insérer une colonne spécifique dans une position spécifique ?
donc je veux quelque chose comme : DefaultTableModel.insertRow(int,Object[]) pour les colonnes
Vous devez vous connecter pour publier un commentaire.
Est-il vraiment nécessaire d'ajouter la colonne dans votre
TableModel
à un index spécifique ? Vous pouvez facilement ajuster l'ordre des colonnes dans la vue (laJTable
) comme indiqué dans la javadoc de la classe deJTable
Ceci est réalisé en utilisant la
JTable#moveColumn
méthode.D'ajouter une colonne à votre
DefaultTableModel
est fait appel de laDefaultTableModel#addColumn
méthodeJTable
a tous ceux convertir l'indice des méthodes comme par exempleconvertColumnIndexToModel
Il n'y a pas de insertColumn méthode comme DefaultTableModel.insertRow() pour insérer des lignes. Pour insérer une colonne à une position particulière, vous devez ajouter la colonne à l'aide de DefaultTable.addColumn (), puis déplacez la nouvelle colonne dans la position désirée.
Avec DefaultTableModel:
À la fin on doit appeler
fireDataChanged
. Il y a seulement unaddColumn
avec plusieurs surcharges. Ce n'est pas une entrave le ordre de l'affichage est indépendant. On peut déplacer une colonne vers une autre position, et à prendre soin de la vue d'index != index de colonne. Pour obtenir la vue correcte de l'indice immédiatement après l'ajout de la colonne, on a accès à la JTable et appelmoveColumn
.Je l'ai trouvé à la fois plus facile pour créer un nouveau TableModel et de l'assigner. Ou ne pas utiliser le DefaultTableModel.
ce lien peut aider
http://www.roseindia.net/java/example/java/swing/InsertColumn.shtml