Avec une interface graphique (bouton awt) j'augmente un compteur 1 clic
= +1 (basic), mais si je laisse le bouton enfoncé j'aimerai que le
compteur defile 2,3,4,5,6 .....
jusqu'au relachement du bouton.
connaissez vous un moyen simple?
lancer un thread au declenchement de MOUSE_PRESSED et le killer avec
MOUSE_RELEASED me parais disproportionné.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Phildes
voir classes Timer et TimerTask, elles peuvent peut-être t'aider.
Causse Bruno a écrit dans le message : 1gi20mo.j7z5fqiyoq68N%
salut
Avec une interface graphique (bouton awt) j'augmente un compteur 1 clic = +1 (basic), mais si je laisse le bouton enfoncé j'aimerai que le compteur defile 2,3,4,5,6 ..... jusqu'au relachement du bouton.
connaissez vous un moyen simple?
lancer un thread au declenchement de MOUSE_PRESSED et le killer avec MOUSE_RELEASED me parais disproportionné.
vos conseil?
-- bruno Causse http://perso.wanadoo.fr/othello
voir classes Timer et TimerTask, elles peuvent peut-être t'aider.
Causse Bruno <no.bcausse.spam@lepoint.tm.fr> a écrit dans le message :
1gi20mo.j7z5fqiyoq68N%no.bcausse.spam@lepoint.tm.fr...
salut
Avec une interface graphique (bouton awt) j'augmente un compteur 1 clic
= +1 (basic), mais si je laisse le bouton enfoncé j'aimerai que le
compteur defile 2,3,4,5,6 .....
jusqu'au relachement du bouton.
connaissez vous un moyen simple?
lancer un thread au declenchement de MOUSE_PRESSED et le killer avec
MOUSE_RELEASED me parais disproportionné.
voir classes Timer et TimerTask, elles peuvent peut-être t'aider.
Causse Bruno a écrit dans le message : 1gi20mo.j7z5fqiyoq68N%
salut
Avec une interface graphique (bouton awt) j'augmente un compteur 1 clic = +1 (basic), mais si je laisse le bouton enfoncé j'aimerai que le compteur defile 2,3,4,5,6 ..... jusqu'au relachement du bouton.
connaissez vous un moyen simple?
lancer un thread au declenchement de MOUSE_PRESSED et le killer avec MOUSE_RELEASED me parais disproportionné.
vos conseil?
-- bruno Causse http://perso.wanadoo.fr/othello
Vincent Wiencek
Dans tes évènements de souris ... lors du clique (mouseClick) , tu lance un Thread qui s'occupe d'incrémenter toues les 500 milli secondes par exemple ... (avec la méthode Thread.sleep)
Et lorsque tu relache la souris (mouseRelease) tu arrete le Thread ...
Ca devrait marcher
Vincent
"Causse Bruno" a écrit dans le message de news:1gi20mo.j7z5fqiyoq68N%
salut
Avec une interface graphique (bouton awt) j'augmente un compteur 1 clic = +1 (basic), mais si je laisse le bouton enfoncé j'aimerai que le compteur defile 2,3,4,5,6 ..... jusqu'au relachement du bouton.
connaissez vous un moyen simple?
lancer un thread au declenchement de MOUSE_PRESSED et le killer avec MOUSE_RELEASED me parais disproportionné.
vos conseil?
-- bruno Causse http://perso.wanadoo.fr/othello
Dans tes évènements de souris ... lors du clique (mouseClick) , tu lance un
Thread qui s'occupe d'incrémenter toues les 500 milli secondes par exemple
... (avec la méthode Thread.sleep)
Et lorsque tu relache la souris (mouseRelease) tu arrete le Thread ...
Ca devrait marcher
Vincent
"Causse Bruno" <no.bcausse.spam@lepoint.tm.fr> a écrit dans le message de
news:1gi20mo.j7z5fqiyoq68N%no.bcausse.spam@lepoint.tm.fr...
salut
Avec une interface graphique (bouton awt) j'augmente un compteur 1 clic
= +1 (basic), mais si je laisse le bouton enfoncé j'aimerai que le
compteur defile 2,3,4,5,6 .....
jusqu'au relachement du bouton.
connaissez vous un moyen simple?
lancer un thread au declenchement de MOUSE_PRESSED et le killer avec
MOUSE_RELEASED me parais disproportionné.
Dans tes évènements de souris ... lors du clique (mouseClick) , tu lance un Thread qui s'occupe d'incrémenter toues les 500 milli secondes par exemple ... (avec la méthode Thread.sleep)
Et lorsque tu relache la souris (mouseRelease) tu arrete le Thread ...
Ca devrait marcher
Vincent
"Causse Bruno" a écrit dans le message de news:1gi20mo.j7z5fqiyoq68N%
salut
Avec une interface graphique (bouton awt) j'augmente un compteur 1 clic = +1 (basic), mais si je laisse le bouton enfoncé j'aimerai que le compteur defile 2,3,4,5,6 ..... jusqu'au relachement du bouton.
connaissez vous un moyen simple?
lancer un thread au declenchement de MOUSE_PRESSED et le killer avec MOUSE_RELEASED me parais disproportionné.
vos conseil?
-- bruno Causse http://perso.wanadoo.fr/othello
no.bcausse.spam
Vincent Wiencek wrote:
Dans tes évènements de souris ... lors du clique (mouseClick)
mousePressed,
, tu lance un Thread qui s'occupe d'incrémenter toues les 500 milli secondes par exemple ... (avec la méthode Thread.sleep)
Et lorsque tu relache la souris (mouseRelease) tu arrete le Thread ...
Ca devrait marcher
Vincent
"Causse Bruno" a écrit dans le message de news:1gi20mo.j7z5fqiyoq68N%
c'est la solution a laquelle j'avais pensé. Malheureusement le demarrage du thread ne se fait que lorsque le bouton est relaché :( (interface bloquante?????), et donc cette solution ne donne pas le bon resultat.
je suis un peu sec sur le sujet, si vous avez d'autre idee???
PS : etre compatible avec une VM 1.1.8 -- bruno Causse http://perso.wanadoo.fr/othello
Vincent Wiencek <vwi@wanadoo.fr> wrote:
Dans tes évènements de souris ... lors du clique (mouseClick)
mousePressed,
, tu lance un
Thread qui s'occupe d'incrémenter toues les 500 milli secondes par exemple
... (avec la méthode Thread.sleep)
Et lorsque tu relache la souris (mouseRelease) tu arrete le Thread ...
Ca devrait marcher
Vincent
"Causse Bruno" <no.bcausse.spam@lepoint.tm.fr> a écrit dans le message de
news:1gi20mo.j7z5fqiyoq68N%no.bcausse.spam@lepoint.tm.fr...
c'est la solution a laquelle j'avais pensé. Malheureusement le demarrage
du thread ne se fait que lorsque le bouton est relaché :( (interface
bloquante?????), et donc cette solution ne donne pas le bon resultat.
je suis un peu sec sur le sujet, si vous avez d'autre idee???
PS : etre compatible avec une VM 1.1.8
--
bruno Causse
http://perso.wanadoo.fr/othello
Dans tes évènements de souris ... lors du clique (mouseClick)
mousePressed,
, tu lance un Thread qui s'occupe d'incrémenter toues les 500 milli secondes par exemple ... (avec la méthode Thread.sleep)
Et lorsque tu relache la souris (mouseRelease) tu arrete le Thread ...
Ca devrait marcher
Vincent
"Causse Bruno" a écrit dans le message de news:1gi20mo.j7z5fqiyoq68N%
c'est la solution a laquelle j'avais pensé. Malheureusement le demarrage du thread ne se fait que lorsque le bouton est relaché :( (interface bloquante?????), et donc cette solution ne donne pas le bon resultat.
je suis un peu sec sur le sujet, si vous avez d'autre idee???
PS : etre compatible avec une VM 1.1.8 -- bruno Causse http://perso.wanadoo.fr/othello
Christophe M
Causse Bruno wrote:
Vincent Wiencek wrote:
Dans tes évènements de souris ... lors du clique (mouseClick)
mousePressed,
, tu lance un Thread qui s'occupe d'incrémenter toues les 500 milli secondes par exemple ... (avec la méthode Thread.sleep)
Et lorsque tu relache la souris (mouseRelease) tu arrete le Thread ...
Ca devrait marcher
Vincent
"Causse Bruno" a écrit dans le message de news:1gi20mo.j7z5fqiyoq68N%
c'est la solution a laquelle j'avais pensé. Malheureusement le demarrage du thread ne se fait que lorsque le bouton est relaché :( (interface bloquante?????), et donc cette solution ne donne pas le bon resultat.
je suis un peu sec sur le sujet, si vous avez d'autre idee???
PS : etre compatible avec une VM 1.1.8
Hé bien, comme disais Phildes. Tu lance un Timer "générique" qui à chaque déclenchement va vérifier une variable boolean globale et incrémente si nécessaire.
Dans le moussepressed tu fixe le flag à true (éventuellement tu remets le compteur à 0 avant) dans le mousserelease, tu fixes à false
après le release, le compteur à été incrémenté du nombre de (milli/centi/déci)secondes/minutes... que le boutton était "pressé"
Causse Bruno wrote:
Vincent Wiencek <vwi@wanadoo.fr> wrote:
Dans tes évènements de souris ... lors du clique (mouseClick)
mousePressed,
, tu lance un
Thread qui s'occupe d'incrémenter toues les 500 milli secondes par exemple
... (avec la méthode Thread.sleep)
Et lorsque tu relache la souris (mouseRelease) tu arrete le Thread ...
Ca devrait marcher
Vincent
"Causse Bruno" <no.bcausse.spam@lepoint.tm.fr> a écrit dans le message de
news:1gi20mo.j7z5fqiyoq68N%no.bcausse.spam@lepoint.tm.fr...
c'est la solution a laquelle j'avais pensé. Malheureusement le demarrage
du thread ne se fait que lorsque le bouton est relaché :( (interface
bloquante?????), et donc cette solution ne donne pas le bon resultat.
je suis un peu sec sur le sujet, si vous avez d'autre idee???
PS : etre compatible avec une VM 1.1.8
Hé bien, comme disais Phildes.
Tu lance un Timer "générique" qui à chaque déclenchement va vérifier une
variable boolean globale et incrémente si nécessaire.
Dans le moussepressed tu fixe le flag à true (éventuellement tu remets
le compteur à 0 avant)
dans le mousserelease, tu fixes à false
après le release, le compteur à été incrémenté du nombre de
(milli/centi/déci)secondes/minutes... que le boutton était "pressé"
Dans tes évènements de souris ... lors du clique (mouseClick)
mousePressed,
, tu lance un Thread qui s'occupe d'incrémenter toues les 500 milli secondes par exemple ... (avec la méthode Thread.sleep)
Et lorsque tu relache la souris (mouseRelease) tu arrete le Thread ...
Ca devrait marcher
Vincent
"Causse Bruno" a écrit dans le message de news:1gi20mo.j7z5fqiyoq68N%
c'est la solution a laquelle j'avais pensé. Malheureusement le demarrage du thread ne se fait que lorsque le bouton est relaché :( (interface bloquante?????), et donc cette solution ne donne pas le bon resultat.
je suis un peu sec sur le sujet, si vous avez d'autre idee???
PS : etre compatible avec une VM 1.1.8
Hé bien, comme disais Phildes. Tu lance un Timer "générique" qui à chaque déclenchement va vérifier une variable boolean globale et incrémente si nécessaire.
Dans le moussepressed tu fixe le flag à true (éventuellement tu remets le compteur à 0 avant) dans le mousserelease, tu fixes à false
après le release, le compteur à été incrémenté du nombre de (milli/centi/déci)secondes/minutes... que le boutton était "pressé"
no.bcausse.spam
Christophe M <mccricri_at_hotmail.com> wrote:
Hé bien, comme disais Phildes. Tu lance un Timer "générique" qui à chaque déclenchement va vérifier une variable boolean globale et incrémente si nécessaire.
Dans le moussepressed tu fixe le flag à true (éventuellement tu remets le compteur à 0 avant) dans le mousserelease, tu fixes à false
après le release, le compteur à été incrémenté du nombre de (milli/centi/déci)secondes/minutes... que le boutton était "pressé"
ca ne change pas le probleme :( le thread "compteur" m'a pas la main tant que le bouton est enfoncé
dans la classe interface utilisateur
.../... pred = new Button(" < "); pred.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) { othellier.scroling(false); }
public void mouseReleased(MouseEvent e) { othellier.interrupt(); } } .../...
dans la classe visualisation
private Thread process = new Thread(this); private volatile boolean forward; private volatile boolean runFlag;
public Game(){ setSize(310, 355); process.start(); }
Hé bien, comme disais Phildes.
Tu lance un Timer "générique" qui à chaque déclenchement va vérifier une
variable boolean globale et incrémente si nécessaire.
Dans le moussepressed tu fixe le flag à true (éventuellement tu remets
le compteur à 0 avant)
dans le mousserelease, tu fixes à false
après le release, le compteur à été incrémenté du nombre de
(milli/centi/déci)secondes/minutes... que le boutton était "pressé"
ca ne change pas le probleme :( le thread "compteur" m'a pas la main
tant que le bouton est enfoncé
dans la classe interface utilisateur
.../...
pred = new Button(" < ");
pred.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
othellier.scroling(false);
}
public void mouseReleased(MouseEvent e) {
othellier.interrupt();
}
}
.../...
dans la classe visualisation
private Thread process = new Thread(this);
private volatile boolean forward;
private volatile boolean runFlag;
public Game(){
setSize(310, 355);
process.start();
}
Hé bien, comme disais Phildes. Tu lance un Timer "générique" qui à chaque déclenchement va vérifier une variable boolean globale et incrémente si nécessaire.
Dans le moussepressed tu fixe le flag à true (éventuellement tu remets le compteur à 0 avant) dans le mousserelease, tu fixes à false
après le release, le compteur à été incrémenté du nombre de (milli/centi/déci)secondes/minutes... que le boutton était "pressé"
ca ne change pas le probleme :( le thread "compteur" m'a pas la main tant que le bouton est enfoncé
dans la classe interface utilisateur
.../... pred = new Button(" < "); pred.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) { othellier.scroling(false); }
public void mouseReleased(MouseEvent e) { othellier.interrupt(); } } .../...
dans la classe visualisation
private Thread process = new Thread(this); private volatile boolean forward; private volatile boolean runFlag;
public Game(){ setSize(310, 355); process.start(); }
Hé bien, comme disais Phildes. Tu lance un Timer "générique" qui à chaque déclenchement va vérifier une variable boolean globale et incrémente si nécessaire.
Dans le moussepressed tu fixe le flag à true (éventuellement tu remets le compteur à 0 avant) dans le mousserelease, tu fixes à false
après le release, le compteur à été incrémenté du nombre de (milli/centi/déci)secondes/minutes... que le boutton était "pressé"
ca ne change pas le probleme :( le thread "compteur" m'a pas la main tant que le bouton est enfoncé
ça m'a tout de même l'air bizarre ce truc, un thread c'est un processus qui tourne à côté, il devrait pas être bloqué par autre chose. Déjà j'utiliserai des synchronized() pour les modifications des variables booleans.
Et pq les mettre volatile ? ça sert à quoi ?
Causse Bruno wrote:
Christophe M <mccricri_at_hotmail.com> wrote:
Hé bien, comme disais Phildes.
Tu lance un Timer "générique" qui à chaque déclenchement va vérifier une
variable boolean globale et incrémente si nécessaire.
Dans le moussepressed tu fixe le flag à true (éventuellement tu remets
le compteur à 0 avant)
dans le mousserelease, tu fixes à false
après le release, le compteur à été incrémenté du nombre de
(milli/centi/déci)secondes/minutes... que le boutton était "pressé"
ca ne change pas le probleme :( le thread "compteur" m'a pas la main
tant que le bouton est enfoncé
ça m'a tout de même l'air bizarre ce truc, un thread c'est un processus
qui tourne à côté, il devrait pas être bloqué par autre chose.
Déjà j'utiliserai des synchronized() pour les modifications des
variables booleans.
Hé bien, comme disais Phildes. Tu lance un Timer "générique" qui à chaque déclenchement va vérifier une variable boolean globale et incrémente si nécessaire.
Dans le moussepressed tu fixe le flag à true (éventuellement tu remets le compteur à 0 avant) dans le mousserelease, tu fixes à false
après le release, le compteur à été incrémenté du nombre de (milli/centi/déci)secondes/minutes... que le boutton était "pressé"
ca ne change pas le probleme :( le thread "compteur" m'a pas la main tant que le bouton est enfoncé
ça m'a tout de même l'air bizarre ce truc, un thread c'est un processus qui tourne à côté, il devrait pas être bloqué par autre chose. Déjà j'utiliserai des synchronized() pour les modifications des variables booleans.
Et pq les mettre volatile ? ça sert à quoi ?
no.bcausse.spam
Christophe M <mccricri_at_hotmail.com> wrote:
ça m'a tout de même l'air bizarre ce truc, un thread c'est un processus qui tourne à côté, il devrait pas être bloqué par autre chose.
ok, mais bon
il doit bien etre possible de realiser ce truc (genre avance rapide/retour rapide d'un magnetoscope)
par ex: regardes mon applet
http://perso.wanadoo.fr/othello/applet.html
tu bloques les pendules pendant que tu maintiens appuyé un bouton. alors que les deux action n'ont rien a voir.
pour info la pendule est un demon.
Déjà j'utiliserai des synchronized() pour les modifications des variables booleans.
Et pq les mettre volatile ? ça sert à quoi
chaque thread peut faire une copie de ses propres variables (optimisation) le modificateur volatile force la vm a utiliser une seule copie (l'originale) de la variable. un peu comme un synchronised.
-- bruno Causse http://perso.wanadoo.fr/othello
Christophe M <mccricri_at_hotmail.com> wrote:
ça m'a tout de même l'air bizarre ce truc, un thread c'est un processus
qui tourne à côté, il devrait pas être bloqué par autre chose.
ok, mais bon
il doit bien etre possible de realiser ce truc (genre avance
rapide/retour rapide d'un magnetoscope)
par ex: regardes mon applet
http://perso.wanadoo.fr/othello/applet.html
tu bloques les pendules pendant que tu maintiens appuyé un bouton.
alors que les deux action n'ont rien a voir.
pour info la pendule est un demon.
Déjà j'utiliserai des synchronized() pour les modifications des
variables booleans.
Et pq les mettre volatile ? ça sert à quoi
chaque thread peut faire une copie de ses propres variables
(optimisation) le modificateur volatile force la vm a utiliser une seule
copie (l'originale) de la variable. un peu comme un synchronised.
ça m'a tout de même l'air bizarre ce truc, un thread c'est un processus qui tourne à côté, il devrait pas être bloqué par autre chose.
ok, mais bon
il doit bien etre possible de realiser ce truc (genre avance rapide/retour rapide d'un magnetoscope)
par ex: regardes mon applet
http://perso.wanadoo.fr/othello/applet.html
tu bloques les pendules pendant que tu maintiens appuyé un bouton. alors que les deux action n'ont rien a voir.
pour info la pendule est un demon.
Déjà j'utiliserai des synchronized() pour les modifications des variables booleans.
Et pq les mettre volatile ? ça sert à quoi
chaque thread peut faire une copie de ses propres variables (optimisation) le modificateur volatile force la vm a utiliser une seule copie (l'originale) de la variable. un peu comme un synchronised.
-- bruno Causse http://perso.wanadoo.fr/othello
Christophe M
Causse Bruno wrote:
Christophe M <mccricri_at_hotmail.com> wrote:
ça m'a tout de même l'air bizarre ce truc, un thread c'est un processus qui tourne à côté, il devrait pas être bloqué par autre chose.
ok, mais bon
il doit bien etre possible de realiser ce truc (genre avance rapide/retour rapide d'un magnetoscope)
par ex: regardes mon applet
http://perso.wanadoo.fr/othello/applet.html
tu bloques les pendules pendant que tu maintiens appuyé un bouton. alors que les deux action n'ont rien a voir.
Et pourtant, non. Chez moi, si je reste appuyé sur le boutton annuler, le pendule continue son décompte du temps.
Le problème vient peut-être de la version de la JVM. Moi j'utilise la 1.4.02 de Sun
pour info la pendule est un demon.
Déjà j'utiliserai des synchronized() pour les modifications des variables booleans.
Et pq les mettre volatile ? ça sert à quoi
chaque thread peut faire une copie de ses propres variables (optimisation) le modificateur volatile force la vm a utiliser une seule copie (l'originale) de la variable. un peu comme un synchronised.
Ben merci, j'en apprends encore un peu chaque jour :-)
C'est nouveau avec la version 1.5 ou ça existait déjà ? (Oui, je sais, je vais chercher sur le net ;-)
Causse Bruno wrote:
Christophe M <mccricri_at_hotmail.com> wrote:
ça m'a tout de même l'air bizarre ce truc, un thread c'est un processus
qui tourne à côté, il devrait pas être bloqué par autre chose.
ok, mais bon
il doit bien etre possible de realiser ce truc (genre avance
rapide/retour rapide d'un magnetoscope)
par ex: regardes mon applet
http://perso.wanadoo.fr/othello/applet.html
tu bloques les pendules pendant que tu maintiens appuyé un bouton.
alors que les deux action n'ont rien a voir.
Et pourtant, non.
Chez moi, si je reste appuyé sur le boutton annuler, le pendule continue
son décompte du temps.
Le problème vient peut-être de la version de la JVM.
Moi j'utilise la 1.4.02 de Sun
pour info la pendule est un demon.
Déjà j'utiliserai des synchronized() pour les modifications des
variables booleans.
Et pq les mettre volatile ? ça sert à quoi
chaque thread peut faire une copie de ses propres variables
(optimisation) le modificateur volatile force la vm a utiliser une seule
copie (l'originale) de la variable. un peu comme un synchronised.
Ben merci, j'en apprends encore un peu chaque jour :-)
C'est nouveau avec la version 1.5 ou ça existait déjà ?
(Oui, je sais, je vais chercher sur le net ;-)
ça m'a tout de même l'air bizarre ce truc, un thread c'est un processus qui tourne à côté, il devrait pas être bloqué par autre chose.
ok, mais bon
il doit bien etre possible de realiser ce truc (genre avance rapide/retour rapide d'un magnetoscope)
par ex: regardes mon applet
http://perso.wanadoo.fr/othello/applet.html
tu bloques les pendules pendant que tu maintiens appuyé un bouton. alors que les deux action n'ont rien a voir.
Et pourtant, non. Chez moi, si je reste appuyé sur le boutton annuler, le pendule continue son décompte du temps.
Le problème vient peut-être de la version de la JVM. Moi j'utilise la 1.4.02 de Sun
pour info la pendule est un demon.
Déjà j'utiliserai des synchronized() pour les modifications des variables booleans.
Et pq les mettre volatile ? ça sert à quoi
chaque thread peut faire une copie de ses propres variables (optimisation) le modificateur volatile force la vm a utiliser une seule copie (l'originale) de la variable. un peu comme un synchronised.
Ben merci, j'en apprends encore un peu chaque jour :-)
C'est nouveau avec la version 1.5 ou ça existait déjà ? (Oui, je sais, je vais chercher sur le net ;-)