Thread pourquoi tu veux pas marcherrrrrrrrr

cs_celineee Messages postés 5 Date d'inscription lundi 3 janvier 2005 Statut Membre Dernière intervention 9 mars 2005 - 1 mars 2005 à 13:52
cs_celineee Messages postés 5 Date d'inscription lundi 3 janvier 2005 Statut Membre Dernière intervention 9 mars 2005 - 3 mars 2005 à 14:21
Je vous explique mon probleme j'essaye d'utiliser une jauge de force qui doit monter et descendre suivant les clics souris ce qui marche comme il faut sauf que pour mon deuxieme clique souris j'aimerais qu'il s'arrete et la il ne veut pas la chose que j'ai modifier est la suivante lorsque je n'avais pas prevu l'arret de mon thread le code qui se trouvait dans la fonction creethread, se trouvais dans la fonction moveprogressbar, lors d'un second clique il me recreer un thread c pour cela que j'ai decider de faire une fonction qui creer le thread a la place de mettre le code brute et je l'ai remonter poru qu'il soit creer dans paneljauge a la place d'etre recreer a chaque fois dans moveprogressbar mais maintenant rien ne marche pourtant le code en lui meme je ne l'ai pas changer, je comprend pas....enfin je sais pas si j'ai été claire mais s'il vous plait aider moi je me tire les cheveux la :'(

import java.awt.*;



public class PanelJauge extends Panel {

//declarations variables
boolean running=false;
public MyProgressBar progressBar ;
boolean end = false ;
boolean start = true;
//creation du thread
Thread t =CreerThread();


public PanelJauge()
{
//boolean start = true;
this.setLayout(new FlowLayout(FlowLayout.CENTER,5,30));

//premier valeur orientation, 2 eme valeur valeur min, 3 eme valeur valeur max
progressBar = new MyProgressBar(1, 0 , 100 ) ;

//1ere valeur gauche droite, 2eme valeur haut bas

this.add(progressBar);

this.setVisible(true);
}


public void MoveProgressBar() {

/*if ( end )
{
progressBar.setValue( min ) ;
end = false ;
return ;
}*/
if( !running )//!running
{

running=true;

t.start();
}
else
{

running=false;
//t.suspend();
//t.interrupt();
System.err.println();
t.stop();
}
}





public void setRun()
{
running= true;
}


public void setEnd()
{
end = true;
running= false;
}



/**
* @return
*
*/
public Thread CreerThread() {
//final int min = progressBar.getMinimum() ;
//boolean end = false ;
//boolean start = true;
final PanelJauge thisJauge= this;
Thread t=new Thread(new Runnable()
{
int minval= progressBar.getMinimum();
PanelJauge mJauge= thisJauge;
public void run()
{
//met running a vrai
mJauge.setRun();
//jauge qui monte et descend
try
{ boolean monte;
int max = mJauge.progressBar.getMaximum() ;
while (start=true)
{
for ( int i = minval ; i <= max ; i+=1 )
{
Thread.sleep( 50 ) ;
mJauge.progressBar.setValue( i ) ;
monte = true;
colorjauge(monte);

}
for ( int i = max ; i >= minval ; i-=1 )
{
Thread.sleep( 50 ) ;
mJauge.progressBar.setValue( i ) ;
monte=false;
colorjauge(monte);
}
}
}
//affichage message d'erreur
catch ( InterruptedException ie )
{
System.err.println( "Error : " + ie.getMessage() ) ;
ie.printStackTrace() ;
}
}

private void colorjauge(boolean monte) {
// TODO Auto-generated method stub
int hauteur =mJauge.progressBar.getValue();
if (monte==true)
{
if (hauteur==25)
{ mJauge.progressBar.setForeground(Color.yellow);
}
if (hauteur==50)
{ mJauge.progressBar.setForeground(Color.orange);
}
if (hauteur==75)
{ mJauge.progressBar.setForeground(Color.red);
}
}
else if (monte==false)
{
if (hauteur==25)
{ mJauge.progressBar.setForeground(Color.green);
}
if (hauteur==50)
{ mJauge.progressBar.setForeground(Color.yellow);
}
if (hauteur==75)
{ mJauge.progressBar.setForeground(Color.orange);
}
}
}
});


return t;

}
}

1 réponse

cs_celineee Messages postés 5 Date d'inscription lundi 3 janvier 2005 Statut Membre Dernière intervention 9 mars 2005
3 mars 2005 à 14:21
personne n'a une pitite idee.....
0
Rejoignez-nous