Pb de thread

cs_hysteria Messages postés 21 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 3 août 2010 - 18 juil. 2003 à 11:35
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 - 20 juil. 2003 à 05:36
salut all, je n'ai jamais utilise des thread mais g qd meme essaye, mais mon applet ne se rafraichit pas :(. Comme c cense etre un compte a rebours, si le temps change pas ca sert a rien...
voila mon bout de code si qqn pourrai me dire ce qu'il ne va pas a mon avis ce n'est qu'un detail.. merci :)

public class AppletTemps extends Applet implements Runnable {
private Integer Heures;
private Integer Minutes;
private Integer Secondes;
private int Heu;
private int Min;
private int Sec;
private Thread t ;


public AppletTemps(){
setFont(new Font("Courrier",Font.BOLD,14));
setForeground(Color.white);
t = new Thread(this);
}

public void init() {
Heu = Heures.parseInt(getParameter("Heures"));
Min = Minutes.parseInt(getParameter("Minutes"));
Sec = Secondes.parseInt(getParameter("Secondes"));
}

public void run() {
boolean i = true;
while(i) {

Sec--;

if (Sec == -1)
{ Sec = 59; Min--;}
if ((Min== -1)&&(Heu> 0))
{ Sec=59; Min=59; Heu--;}
if ((Min== -1)&&(Heu< 0))
{ Sec=59; Min=0; }
if (Heu == -1)
{ Sec=59; Min=59; Heu=0;}
if((Sec == -1)&&(Min== -1)&&(Heu == -1))
{i = false;}

try {t.sleep(1000);}
catch (InterruptedException signal) { }
}
repaint() ;
}

public void play() {
}

public void paint(Graphics g) {
String ch0="";
String ch1="";
String ch2="";
ch0 = ch0.valueOf(Heu);
ch1 = ch1.valueOf(Min);
ch2 = ch2.valueOf(Sec);
g.clearRect(0,0,getSize().width,getSize().height);
g.drawString(ch0, 2, 15);
g.drawString(" heures", 20, 15);
g.drawString(ch1, 90, 15);
g.drawString(" minutes", 110, 15);
g.drawString(ch2, 180, 15);
g.drawString(" secondes", 200, 15);
repaint() ;
}


public void destroy() {
}

}.

34 réponses

cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
19 juil. 2003 à 15:38
ben oui tu peut, sauf tu dois le coder, system. me souviens plus du reste, mais j'en avait fait un au complet dasn ma calaculatrice basique et scientifique
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
19 juil. 2003 à 15:45
en fait c'est simple
swing utilise awt, alors pourquoi utiliser swing
c'est que swing est normalisé avec tout les os et awt utilise des paramètre de l'os

donc si tu es sur winodws, ça va être numéro 1, masi si tu fasi jouer la même applet sous linux ou sous mac, personne garantie du résultat.

Mais si tu utilise swing, sous n'importe quel os, le résultat sera toujours pareil

masi faut pas banir awt, puiqu'AWT est extrêment puissant pour la saisie de donner et compagnie et puisuqe la saisie de donné est pas visible, c'est seulement du code en arrière plan, il y a pas d'équivalant swing

microsoft veut que tout le monde utilise windows et sa virtuel machine java (VM), donc c'est pas pour rien qu'il ajoute pas swing, puisque si les programmeur était sous winodws lors de la programmation et qu'ils ont utiliser awt, sauf de linus et de mac chiale, puisque eux ça affiche mal. Donc surtout ceux de linux, ça va leur donner une raison de plus à revenir sous windows.

pas pour rien que sun et micorsoft sont en cours présentement, pis le pire dasn tout ça, c'est microsoft qui a gagner la preimère partie de la guerre au tribunaux
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
19 juil. 2003 à 15:48
core, ici ça peut pas amrcher, puisque les calcul de la calculatrice ont été mis sur le rafraichissement

en passant, c'est pas l'idéal, mieux vaut me mettre avant le repaint ou tout de suite après dépendant le code
0
cs_hysteria Messages postés 21 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 3 août 2010
19 juil. 2003 à 16:21
merciiii t mon sauveur !!!!!!!!!!!!!!!!!!!!
cette classe me servira de classe d'exemple pr les prochaine pke en fait j'aai du mal a en troue un bien adapte a ce que je oulai faire ou alors trop complikes

encore merci :)
0

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

Posez votre question
cs_hysteria Messages postés 21 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 3 août 2010
19 juil. 2003 à 17:18
o fait est-ce que ca existe une commande qui peut actualiser la page web de l'applet?
0
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
19 juil. 2003 à 17:22
C'est pas la peine car si tu veux faire un copier coller tu peux toujours utiliser un JTextField avec appel à setEditable(false).

Je croyais juste qu'avec un JLabel on pouvais faire un copier-coller et ne pas pouvoir le faire était un attout pour une application qui voulais garder ses informations confidentielles. Mais on fait par défaut on ne peux pas ce qui permet de justifier l'utilisation d'un JLabel plutôt que d'utiliser la Graphics dans la méthode paint().

Core Breaker :)
0
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
19 juil. 2003 à 17:29
C'est pour cela qu'il faut que le plug-in Java de SUN se généralise car il permet d'utiliser les applis Java dans passer par la Microsoft VM.

Core Breaker :)
0
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
19 juil. 2003 à 17:39
Je suis passé trop vite sur le code, j'ai pas tout analysé, j'ai donc pas vu qu'il été mal placé.
Mais sinon, oui, c'est mieux de le mettre avant le repaint.

Mais de toute façon meilleure sera la qualité du rafraichissement si on met le sleep à 1000 car au bout d'un moment il y aura un écart de 2 dans l'affichage des secondes ca va passer par exemple de l'afficahge de "5" avent le rafraichissement à l'affichage de "3" après le rafraichissement. Et ceci parce que 1000 est une valeur trop juste, vaux mieux mettre 500 par exemple pour que cela ne se produise pas.

Core Breaker :)
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
20 juil. 2003 à 03:15
ah oui, ce que je cherchais c'est System.clipboard (il me semble lol)

masi c,est vraiment pas compliquer. Mais bon c,est sur quand c'est déjà fait, pourquoi le refaire
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
20 juil. 2003 à 03:16
ouin, si microsoft avait pas ganger, ce qui est pas arriver. donc ce qui veut dire, la VM de microsoft risque d'être là pour rester
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
20 juil. 2003 à 03:19
moi, ce que je fait toujours, c'est je prend le temps présent, avant les calcul system.currenttime() (si ma mémoire est bonne lol), je la store dasn une variable TempDebut

je fais les calcul, puis je fait, dans ton cas, 1000 - (System.CurrentTime() - TempDebut);

Comme ça, même si le code est long à effectuer, ça influencera pas le temps d,éxécution, puisque le temps de calcul est déduit du sleep
0
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
20 juil. 2003 à 04:51
Pour l'instant !
Tout comme avec Javascrip qui avait été mis par Netscape, Microsoft l'a ensuite intégré à partir de IE 2 ou IE 3. Donc de même le plug-in Java sera généralisé car il offre trop de possibilités Java par rapport à la MS VM

Core Breaker :)
0
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
20 juil. 2003 à 04:58
Ouais bonne idée je le faisait en C mais j'ai perdu cette bonne habitude en Java. Mais je préfère quand même mettre le sleep en 500 ça mange pas de paint, ça ne craint pas au niveau perf et puis ça évite à coup sûr le saut de secondes qui ne seront pas affiché. Même pas la peine de le mettre à 250, 500 suffit.

Core Breaker :)
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
20 juil. 2003 à 05:36
ouin, faut dire que quand je code des jeux, je peut aps me permettre trop de refresh innutile, faut que je sois au minimum
0
Rejoignez-nous