ldumont
Messages postés53Date d'inscriptionlundi 21 janvier 2008StatutMembreDernière intervention 5 mars 2008
-
25 févr. 2008 à 22:26
ldumont
Messages postés53Date d'inscriptionlundi 21 janvier 2008StatutMembreDernière intervention 5 mars 2008
-
26 févr. 2008 à 12:03
Bonsoir,
j'aimerais que quand je clique sur un bouton mon timer se lance, le problème c'est qu'apparement je n'ai pas le droit de mettre directement dans la définition de mon listener : monTimer.launch() alors comment faire??
C'est un pb récurent avec les listeners, je ne vois pas comment modifier la valeur d'un attribut d'une classe autre que celle ou se trouve le listener, au sein du listener.
Merci d'avance
uhrand
Messages postés491Date d'inscriptionsamedi 20 mai 2006StatutMembreDernière intervention15 juillet 20129 26 févr. 2008 à 06:57
Si le listener est une class anonyme (on le fait souvent pour les actions d'un bouton) et si monTimer est une variable locale (dans le constructeur), alors il faut la définir la variable comme "final":
final Timer monTimer;
peux-tu montrer ce que tu
as fait stp, histoire de mieux cerner le problème que tu
expose et qui n'est pas super clair (si ce n'est, que ça ne
fonctionne pas ^^)
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
ldumont
Messages postés53Date d'inscriptionlundi 21 janvier 2008StatutMembreDernière intervention 5 mars 2008 26 févr. 2008 à 09:52
voici le main dans lequel j'instancie myClock qui est mon Timer
public static void main(String args[]){
estaca.util.Timer myClock = new estaca.util.Timer(1000) ;
TestTimer tt = new TestTimer() ;
GridBagLayoutDemo grid = new GridBagLayoutDemo();
myClock.addTimerListener(tt) ;
{
myClock.pause();
}
}
et voici le listener du bouton qui doit lancer le timer
public void actionPerformed(ActionEvent e) {
JToggleButton boutonAgir = (JToggleButton) e.getSource();
//Temps t = (Temps);
if (!boutonAgir.getText().equals("START"))
{
boutonAgir.setText("START");
myClock.pause();
}
else//c'est "Appuyé": on l'enlève
ldumont
Messages postés53Date d'inscriptionlundi 21 janvier 2008StatutMembreDernière intervention 5 mars 2008 26 févr. 2008 à 12:03
C'est bon! ça fonctionne, comme uhrand me l'avait dit, j'ai mis mon timer en final et je l'ai dégagé du main, puis j'ai déclaré mon listener et ça fonctionne enfin. voici le code:
final estaca.util.Timer myClock = new estaca.util.Timer(1000) ;
TestTimer tt = new TestTimer() ;
myClock.addTimerListener(tt) ;
//--------------Définition du bouton qui permet de lancer et mettre en pause le timer
JToggleButton demarrage = new JToggleButton("START");
demarrage.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
JToggleButton boutonAgir = (JToggleButton) e.getSource();
if (!boutonAgir.getText().equals("START"))
{
boutonAgir.setText("START");
myClock.pause();
Malheureusement je risque de vous embeter encore car en fait je suis en train d'élaborer un régulateur de vitesse. C'est un projet imposé par mon école et qui doit se faire à 3. J'avais donc l'IHM mais finalement les deux personnes qui sont dans mon groupe m'ont lachée... et donc je me retrouve à devoir aussi faire la partie du calculateur et celle du controleur sachant que le projet doit etre rendu début avril...et que j'ai quand même les autres cours à réviser!
Bref, voila pour la petite histoire. D'où le nombre assez important de questions que je pose sur CodesSource et l'absence de source postée car je passe tout mon temps libre sur le projet.
Voilou et encore merci