J'ai un JTable
(étendu) et une mise en œuvre de TableModel
, dans lequel j'ai les méthodes ...Java: JTable lignes de réordonnancement et rafraîchir
moveEntryUp(int rowIdx)
moveEntryDown(int rowIdx)
. .. dans la mise en œuvre du modèle de table. J'ai vérifié que ceux-ci fonctionnent correctement.
Cependant, je rencontre des problèmes pour que les modifications apportées au modèle de table se propagent au JTable
réel. Dans ce tableau, je n'autorise qu'une seule sélection de ligne, et j'ai un bouton séparé pour Up et Down. Quand une rangée est élue, je dois être capable de déplacer cette ligne de haut en bas, et préserver la sélection.
E.g.
Si mes lignes sont [A, B, C(selected)]
, et que j'appuie sur le bouton haut,
, je devrais obtenir [A, C(selected), B]
.
Les différentes approches que j'ai essayées jusqu'ici échouent à actualiser les valeurs dans la JTable, ou perdent la sélection.
REMARQUE:
Je hésite à utiliser une solution qui nécessite un appel explicite à repaint()
.
Supposons que toutes les cellules du JTable
sont et non modifiables.