Keypressed avec les JTables

larissaMoi Messages postés 1 Date d'inscription samedi 16 décembre 2000 Statut Membre Dernière intervention 14 juillet 2008 - 14 juil. 2008 à 16:32
uhrand Messages postés 491 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juillet 2012 - 16 juil. 2008 à 23:01
Bonjour à tous!

Je suis nouvelle dans le developpement en Java et je sollicite votre aide dans l'utilisation des JTable.
En effet, j'ai une table à 3 colonnes (A, B et C). Les colonnes A et C sont éditables. Je souhaiterait qu'à la saisie d'une valeur dans la colonne A, la colonne C de la ligne correspondante recoivent comme valeur : Valeur(A)*Valeur(B).

Comment le faire?

2 réponses

tlaloctzin Messages postés 136 Date d'inscription mercredi 21 juin 2006 Statut Membre Dernière intervention 12 septembre 2013 3
15 juil. 2008 à 13:13
Alors moi j aurais fais commec a ( c 'est pas dit que ce soit le top ! :p)

1) Tu rajoutes un KeyListener a ta class
   
   ex : publicMaClassextendsJFrameimplementsKeyListener

2) Tu ajoutes le keylistener a ta table :

         jTable1.addKeyListener( this ) ;

3) Tu implémentes tes methodes découlant de l'interface KeyListener soit
         -public voidkeyPressed(KeyEvent evt)
         -public voidkeyTyped(KeyEvent evt)
         -public voidkeyReleased(KeyEvent evt)//celle qui nous interesse

4) Tu fais ta methode de traitement dans la released 

public voidkeyReleased(KeyEvent evt){

//récuperation de la ligne séléctionée
 int row    = jTable1.getSelectedRow();
    //on essaye
    try{

  //en gros a chaque fois qu une touche du clavier est relachée on recup
 //la ligne selectionée puis les valeures (en String) des cellules 1 et 2
//on transphorme ces string en int , on les multiplies et on aloue la valeure 
//a la cellule 3

        jTable1.setValueAt(
                Integer.parseInt(jTable1.getValueAt(row, 0).toString())*
                Integer.parseInt(jTable1.getValueAt(row, 1).toString()), row, 2);
            }

    catch(Exceptionex){
        jTable1.setValueAt("0", row, 2);
    }
   


    }

Bon j'éspere que t as compris pck je me suis appliqué la ^^
Il vaut mieu être riche et en bonne santé que pauvre et malade .
0
uhrand Messages postés 491 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juillet 2012 9
16 juil. 2008 à 23:01
Une autre manière est d'ajouter un TableModelListener.
Ou encore: intégrer le calcul dans ta propre implémentation de la méthode "setValueAt" du "TableModel".
0
Rejoignez-nous