interdire des doublon dan un JTable

interdire des doublon dan un JTable - Java - Programmation

Marsh Posté le 02-11-2011 à 14:05:00    

Bonjour à tous, dans mon application je dispose de deux (2) JTables  A et B, l’idée est de pouvoir, en cliquant sur le bouton ajouter, copier la donnée de la ligne sélectionnée de A dans B, ce que je suis parvenu à faire sans problème, mais le hic est que la donnée copiée se place sur  la première ligne de B, je voudrais qu’elle se place sur la dernière ligne, je veux dire après le dernier enregistrement de la  JTable B. Aussi je voudrais pouvoir interdire d’avoir des doublons dans la table B,mes tentatives se sont chaque fois soldées par des échecs, quelqu’un pourrait-il m’aider ?
 
 codes :
 

Code :
  1. private javax.swing.JTable txtJtableRegDispo;
  2. private javax.swing.JTable txtJtableRegCharger;
  3. private DefaultTableModel aModel,bModel;
  4. //Méthodes de vérification de doublon
  5. public boolean verif(Object[] val){
  6.     boolean result=true;
  7.     for(int k=0;k< txtJtableRegCharger.getModel().getRowCount();k++){
  8.           if(txtJtableRegCharger.getModel().getValueAt(k, 0) == val){
  9.               JOptionPane.showMessageDialog(null, val+" existe déjà", "Erreur", JOptionPane.ERROR_MESSAGE);
  10.               result=false;
  11.           }
  12.         }
  13.      return result;
  14. }
  15. private void CmdAjouterActionPerformed(java.awt.event.ActionEvent evt) {                                         
  16.         // TODO add your handling code here:
  17. // txtJtableRegDispo;  Registre (A);  txtJtableRegCharger  Registre (B)
  18.        int i=txtJtableRegDispo.getSelectedRow();     
  19.       int j=0;//ici je sais que la donnée se placera à la premiere ligne,mais je ne voit pas trop comment recuperé la position exacte de la ligne sans erreur
  20.       Object [] valeur = {txtJtableRegDispo.getValueAt(i, 0)};
  21.        bModel.insertRow(j,valeur);
  22. if(verif(valeur)==true )
  23.         bModel.insertRow(j,valeur); 
  24. j++ ; 
  25.     }


mais rien n'y fit,ma methode ne donne rien.


---------------
l'on s'enrichit d'avantage en partageant ces connaissances
Reply

Marsh Posté le 02-11-2011 à 14:05:00   

Reply

Marsh Posté le 03-11-2011 à 17:51:19    

En général le plus simple est d'avoir sa propre implémentation  d'AbstractTableModel

Reply

Marsh Posté le 04-11-2011 à 12:12:23    

voulez vous dire,que si j'en fait une,je pourai gerer l'interdiction de doublon dans ma table de destination ? Quel evenement me permettra t-il de le gerer.merci.

Reply

Marsh Posté le 22-11-2011 à 12:52:43    

Oui c'est ca.
 
Il faut que tu rédifinisses une classe qui hérite d'AbstractTableModel. A partir de la tu peux rajouter des méthodes pour faire ce que tu veux.
 
En règle général, pour les JTable , on recrée toujours une classe à partir d'AbstractTableModel sinon on peut jamais rien faire comme on veut par expérience.
 
Pauline

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed