Partage
  • Partager sur Facebook
  • Partager sur Twitter

JTable - problème de résurgeance de ligne effacée.

Sujet résolu
    18 juillet 2021 à 18:11:39

    Bonjour,
    J'ai un problème avec un tableau. Je décris briévement le symptôme :

    1. dans ma classe principale j'instancie un JTable tableau1, j'instancie un DefaultTableModel model1 qui prend le tableau1, j'instancie un JTable tableau2 qui prend le DefaultTableModel model1.
    2. toujours dans ma classe principale, j'ajoute ce tableau2 à un JPanel, lui-même contenu dans un JPanel (card numéro 2) de type CardLayout (2).
    3. dans mon card numéro2, je saisie un numéro dans un JTextField et je clique sur un JButton afficherResult, ce qui appelle une méthode de ma deuxième classe.
    4. cela va chercher des données dans ma base de données et ces données s'ajoute à une nouvelle ligne (créée à ce moment) sur model1 afin que tableau2 affiche la ligne, via un setter.
    5. dans mon card numéro 2, je clique sur un bouton qui efface la ligne du model1 (removeRow).
    6. lorsque je passe du Card numéro 2 au numéro 1, je lance une méthode de ma classe principale qui efface toutes les lignes (removeRow) du card numéro 2 (au cas où je n'aurai pas cliquer sur le bouton qui efface la ligne du model1).
    7. lorsque je reviens sur le card numéro 2 et que je teste à nouveau de saisir un numéro dans mon JTextField et que je clique sur le JButton afficherResult, le tableau affiche deux lignes identiques.
    8. si je continue le chemin "je vais sur card numéro 1 puis je reviens sur card numéro 2 et je clique sur le JButton afficherResult", alors le tableau m'affichera 3 lignes, et ainsi de suite.

    J'ai tenté de mettre le tableau à null puis de l'instancier à nouveau, résultat plus du tout de tableau. Idem pour le DefaultTableModel.
    Et je ne comprends pas pourquoi la ligne s'efface bien avec la méthode associé à mon JButton alors qu'après le changement de card la ligne revient... Je me demande si le problème ne viendrait pas de la structure même de mon code : le fait de passer par un CardLayout.

    Deux semaines que j’essaie de trouver une solution mais je bloque totalement. Je sais qu'il est plus facile de comprendre en lisant du code mais je ne le mets pas ici car il comporte plus de mille lignes.

    Merci d'avoir lu cet appel à l'aide !


    EDIT :
    Bon, j'ai trouvé une solution absolument pas optimale mais qui a le mérite de fonctionner pour le moment. J'ai ajouté une boucle de suppression de ligne juste avant d'ajouter une nouvelle ligne. C'est pas top, mais ça fonctionne. Je clôture donc le sujet.

    -
    Edité par EryneKL 18 juillet 2021 à 18:21:11

    • Partager sur Facebook
    • Partager sur Twitter

    JTable - problème de résurgeance de ligne effacée.

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown