Bonjour,
Je voudrais associer un listener (par ex: action listener) à une image que je dessine sur l'écran , est-ce possible ? si oui comment ?
a7aa7a
Version imprimable
Bonjour,
Je voudrais associer un listener (par ex: action listener) à une image que je dessine sur l'écran , est-ce possible ? si oui comment ?
a7aa7a
Salut,
Quels sont les évènements que tu veux récupérer ? (j'ai oublié ma boule de cristal...) :mrgreen:
++
Gueritarish
un double-clic tout simplement ! :mrgreen:
Salut,
Alors, je suppose que tu dois mettre ton image dans un Panel ou autre, donc, il te suffit de mettre un MouseListener sur le Component qui contient ton image. Ensuite, il te suffit d'implémenter la méthode mouseClicked() (les autres méthodes aussi, mais elles ne te serviront pas :mrgreen: du moins, pource que tu veux faire ^^).
Dans cette méthode, tu peux récupérer un double-clic comme ceci :
Voilà, tu trouveras surement ton bonheur dans le tuto de Sun sur les MouseListenersCode:
1
2
3
4
5 public void mouseClicked(MouseEvent e) { if(e.getClickCount() == 2) { System.out.println("Un double clic a été détecté !!!"); } }
++
Gueritarish
OK :king:
Merci beaucoup. !! ;)
Et comment faire pour un clic avec une (ou 2) touche en meme temps (exemple : [ctrl] ou encore [ctrl]+[alt])?
Et un clic fait par la roulette de la souris ?
Et un mouvement fait par la roulette centrale de la souris ?
:mrgreen: Voila ca fait beaucoup de questions en guise de cadeau de noel ; - )
Mais déjà merci beaucoup pour la réponse.
a7aa7a
Bon, pour pouvoir récupérer les évènements du clavier, il te faut ajouter un KeyListener Comment utiliser les KeyListenerCitation:
Envoyé par a7aa7a
Il va te falloir te pencher réellement sur la JavaDoc... parce que toutes les questions que tu me poses prennent 30 secondes à être résolu grâce à la JavaDoc...Citation:
Envoyé par a7aa7a
Pour gérer un clic fait par la roulette de la souris, il suffit de savoir gérer un clic fait par la souris... Sauf que les clics-molette sont considérés comme des clics fait par le bouton 3 de la souris!
MouseWheelListenerCitation:
Envoyé par a7aa7a
Voilà,
N'hésite pas à abuser de la JavaDoc
++
Gueritarish
Dans ce cas, puisque tu as acces a Internet pour acceder au forum je te conseille fortement d'aller recupere le zip de la javadoc chez Sun (voir "Java SE 6 Documentation") et de la mettre, par exemple, sur un CD ou une cle USB pour la consulter plus rapidement. C'est bien plus rapide et pratique quand on l'a sous la main en local. De plus, certaines IDE, comme JBuilder, Eclipse ou autre l'incluent directement dans leur distribution et permettent de l'afficher quand par exemple on appuie sur F1 alors qu'on a selectionne le nom d'une classe ou d'une methode (la maniere de l'afficher varie suivant les IDE).
Alors, une chose qu'il te faut savoir, c'est que tu peux mettre plein de Listener différents sur un Component. Pourquoi ça? Pour une bonne et simple raison qu'un Listener sert à écouter les évènements. Donc, c'est pas parce que tu mets un MouseListener que les autres évènements ne fonctionnent plus... Ils seront toujours envoyés. Par contre, ils ne seront récupérés que si tu mets le Listener correspondant aux évènements que tu souhaites récupérer.
Là, il te faut prévoir une méthode à implémenter pour gérer les appuis sur les touches en même temps que le clic souris (compteur, ...).
Voilà, bon courage,
++
Gueritarish
La methode getModifiersEx() de la classe InputEvent (classe mere de MouseEvent) devrait permettre de detecter si les touches ALT, CTRL, etc.. sont actives pendant le clic. Un truc du genre :
Code:
1
2
3 int modifiers = e.getModifiersEx() ; boolean button_1 = ((modifiers & InputEvent.BUTTON1_DOWN_MASK) == InputEvent.BUTTON1_DOWN_MASK); boolean alt = ((modifiers & InputEvent.ALT_DOWN_MASK) == InputEvent.ALT_DOWN_MASK);