Un addActionListener sur un JTextField

java versus hardtek Messages postés 18 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 17 juillet 2007 - 23 déc. 2005 à 11:06
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 - 24 déc. 2005 à 17:55
Salut,



J'ai un tableau de JTextField et j'aimerais qu'a chaque fois que je
modifie la valeur d'un JTextField, la barre de totaux située en
dessous du tableau s'actualise (le même principe qu'un mini excel avec
une formule de somme)



JTextFieldJour Jour[][] = new JTextFieldJour[numligne][14];

...



Jour[b][i] = new JTextFieldJour (i,b,label,0,i);

Jour[b][i].getTextField().addActionListener(new EcouteurTotal(this));

// getTextField() renvoie le JTextField de la class JTextFieldJour

// l'EcouteurTotal est attibué à tous les éléments de Jour[][]

...



// et voila l'ecouteur

class EcouteurTotal implements ActionListener

{

StockPanel p; // le JPanel

EcouteurTotal(StockPanel pan)

{

p = pan;

}



public void actionPerformed(ActionEvent e)

{

p.totalActu(); // actualise la ligne de totaux


p.sauvegarde();


}

}



Je ne sais pas pourquoi cet écouteur fonctionne quand il est activé en
cliquant sur bouton mais pas après modification d'un JTextField.
Or je veux que ça se fasse automatiquement.

7 réponses

sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
23 déc. 2005 à 11:16
va voir a : statechanged
je suis pas sur de l'ortographe
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
23 déc. 2005 à 12:05
Utilise plutôt un KeyListener au lieu d'un actionlistener, ce qui est bien plus adapté pour ce que tu veux faire !

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
0
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
23 déc. 2005 à 12:09
ouais le keylistener c pas mal aussi
0
java versus hardtek Messages postés 18 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 17 juillet 2007
24 déc. 2005 à 00:14
J'ai fait quelques modif avec un keyListener :

Et j'obtiens :

EcouteurTotal is not abstract and does not override abstract method

keyReleased(java.awt.event.KeyEvent) in java.awt.event.KeyListener

class EcouteurTotal implements KeyListener





Jour[b][i].getTextField().addKeyListener(new EcouteurTotal(this));



...



class EcouteurTotal implements KeyListener

{

StockPanel p;

EcouteurTotal(StockPanel pan)

{

p = pan;

}



public void keyTyped(KeyEvent e)

{

p.totalActu();

p.sauvegarde();

}



???
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
24 déc. 2005 à 00:16
t'utilise eclipse comme ide ?
si non il te corrige automatiquement ce genre de faute
il te fau implementer tt les methode abstraite
ta un exemple de listener dans une de mes source :
diaporama
0
java versus hardtek Messages postés 18 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 17 juillet 2007
24 déc. 2005 à 17:45
Non je n'utilise pas Eclipse mais Kawa et je ne peux pas avoir accès à ta source diaporama apparement.



J'ai modifié la forme de mon keyListener en fonction d'un exemple trouvé sur internet

mais ça ne marche pas. Je capte pas le principe de fonctionnement en
quoi il doit s'utiliser differement d'un actionListener (voir comment
je l'utilisais plus haut). Voilà la structure du programme (pas
top mais le truc fait 8000 lignes alors c'est vraiment le bordel)



class StockPanel implements KeyListener // il s'agit d'un panel correspondant à un onglet

{

(contraintes de gridbag ... )



public StockPanel(String typ, int nbSem)

{

(constructeur)

}



public JPanel CreationPanel(GridBagLayout gridbag)

{

(...)

Jour[b][i].getTextField().addKeyListener(this);

(...)

}



public void keyTyped(KeyEvent e)

{

totalActu();

sauvegarde();

}



}



public void keyPressed(KeyEvent e){}

public void keyReleased(KeyEvent e){}



public void totalActu()

// actualise l'interface avec les nouveaux totaux

{

....

}



(...)



}



-----------------------------------------------------------------

class Fenetre extends JFrame

{

contraintes de gridbag (... )



static StockPanel PanelBig6;

static StockPanel SaleBig6;



public Fenetre ()

{

(...) définition des deux onglets PanelBig6 et SaleBig6

}

}



--------------------------------------------------------------------------------



class stock

{

public static void main (String args[])

{

Fenetre f = new Fenetre();

f.show();

}

}
0
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
24 déc. 2005 à 17:55
voila un exemple quand le focus est sur un composant appeler edi:
edi.addKeyListener(new KeyListener (){

public void keyTyped(KeyEvent e) {


}

public void keyPressed(KeyEvent e) {

if(e.getKeyCode()==KeyEvent.VK_F12 )Suivant();
if(e.getKeyCode()==KeyEvent.VK_F11 )precedent();

}

public void keyReleased(KeyEvent e) {

}

});

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0
Rejoignez-nous