GNT sans publicité, site mobile, fonctionnalitées exclusives...

Pression continue JButton

Le
Tafanor
Salut tout le monde,

Je cherche à réaliser un composant "PlusMoins" : un JLabel et 2 JButton
"Plus" et "Moins".
Lorsqu'on clique sur un bouton, on (in|dé)crémente de 1 la valeur
affichée par le JLabel.
Je voudrais implanter de même la gestion d'une "pression continue" sur
le JButton qui (in|dé)crémente le JLabel tant que le bouton est préssé.
Imaginons qu'on teste l'état du bouton toutes les 500 millisecondes.

J'aimerais donc savoir comment détecter l'état du JButton, en
particulier s'il est préssé. Je pensais faire quelque chose comme :

JButton bt = new JButton("+") ;
bt.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
do
{
// Incrémenter la valeur affichée
Thread.sleep(500) ;
}
while(/* bouton enfoncé */) ;
}
}) ;

Il me manque juste le test du while Si vous avez une idée Merci

Tafanor
Lire les 4 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
TestMan
Le #525733
Question bête : Pourquoi tu utilises pas un JSPinner ?

http://java.sun.com/j2se/1.4.2/docs...inner.html

A+

TM

Tafanor wrote:
Salut tout le monde,

Je cherche à réaliser un composant "PlusMoins" : un JLabel et 2 JButton
"Plus" et "Moins".


Tafanor
Le #529172
Je connais cette classe. Le problème c'est qu'on m'impose d'utiliser le
jdk 1.3... Donc pas de JSpinner possible. Ma question est aussi à but
pédagogique : j'aimerais bien savoir réaliser le composant que je vous ai
décrit.

Tafanor

Question bête : Pourquoi tu utilises pas un JSPinner ?

http://java.sun.com/j2se/1.4.2/docs...inner.html

A+



oliv
Le #529169
Tafanor wrote:
Je connais cette classe. Le problème c'est qu'on m'impose d'utiliser le
jdk 1.3... Donc pas de JSpinner possible. Ma question est aussi à but
pédagogique : j'aimerais bien savoir réaliser le composant que je vous ai
décrit.


Essayer dans un autre Thread ? qqch comme

private boolean down;

...

b.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent ev) {
down = true;

new Thread(new Runnable() {
public void run() {
do {
System.out.print("*");
// Incrementer la valeur affichee
try {
Thread.sleep(500);
}
catch (InterruptedException ex) {}
}
while(down);
}
}).start();
}

public void mouseReleased(MouseEvent ev) {
down = false;
}
});

--
oliv

Phildes
Le #528295
Pour le principe, je peux conseiller de regarder avec E-Anim :
http://www.phildes.com
1 - créer un "bouton-animé" à 3 états
2 - L'état appuyé de ce bouton est une séquence de 500 millisecondes
3 - au bout de ces 500 millisecondes, placer une action "programmée" qui
envoie un message à ton prog Java

Donc, tant que ton bouton sera appuyé, un message sera envoyé en boucle tous
les 500 millisecondees à ton programme.
Ca fonctionne en java 1.1




"Tafanor" news:3fd0761c$0$7162$
Je connais cette classe. Le problème c'est qu'on m'impose d'utiliser
le

jdk 1.3... Donc pas de JSpinner possible. Ma question est aussi à but
pédagogique : j'aimerais bien savoir réaliser le composant que je vous ai
décrit.

Tafanor

Question bête : Pourquoi tu utilises pas un JSPinner ?

http://java.sun.com/j2se/1.4.2/docs...inner.html

A+







Publicité
Suivre les réponses
Poster une réponse
Anonyme