Probleme avec clique droit de la souris [Résolu]

Messages postés
58
Date d'inscription
lundi 25 avril 2005
Dernière intervention
6 mai 2008
- - Dernière réponse : fififarawla
Messages postés
4
Date d'inscription
mercredi 19 mai 2010
Dernière intervention
31 mai 2010
- 13 avril 2010 à 10:59
Bonsoir, j'ai un ptit probleme avec mon clique droit. Comment savoir dans la méthode MouseClicked sur quel bouton j'ai cliqué droit ??

le GetBouton me renvoi un entier ...et avec le GetComponent que j'ai casté en Jbutton mais fonctionne pas apparemment .Il ne me renvoie pas le bouton cliqué .
En fait pour etre plus precis : j'ai une grille avec 81 cases .

Chaque case est composé d'un panel (avec CardLayout) 2 composant dans ce card layout -> 1 panel avec 9 boutons et 1 bouton simple .

Je voudrais que quand je clique gauche qu'il me modifie un texte et quand je clique droit qu'il switch de composant du panel ...( de tel facon que si c'était un panel de 9 bouton au départ que ca soit celui avec 1 bouton..)

Pour ce faire j'ai besoin de savoir sur quel bouton je clique droit pour pouvoir remonter au parent( le panel) et ainsi switcher de composant )

J'ai pas l'impression d'avoir été clair en tous cas mreci du coup de main

@ ++
Afficher la suite 

Votre réponse

14 réponses

Meilleure réponse
Messages postés
58
Date d'inscription
lundi 25 avril 2005
Dernière intervention
6 mai 2008
3
Merci
Voilà comment je m'y prend et cela ne fonctionne toujours pas :


bposs.addMouseListener(new MouseAdapter() {

public void MouseClicked (MouseEvent ev){


if(ev.getButton() == ev.BUTTON1){ // si bouton droit

JButton obj=(JButton) ev.getSource();
//si case vide -> ajout possibilite
if (obj.getText().equals("")) {

obj.setText(Modele.value);
}

// si case remplie -> on vide la case
else{
JButton obj1= (JButton) ev.getSource();
obj1.setText("");

}

}
//si bouton gauche -> placement
else {

JButton obj= (JButton) ev.getSource();
JPanel carte= (JPanel) obj.getParent().getParent();
pile.next(carte);




}


}});

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 96 internautes nous ont dit merci ce mois-ci

Commenter la réponse de issoux
Messages postés
388
Date d'inscription
mercredi 1 octobre 2003
Dernière intervention
3 mai 2006
0
Merci
coucou, essaye en faisant ca :







public void mouseClicked( MouseEvent e){



if(e.getModifiers() == MouseEvent.BUTTON3_MASK)

{

//clic droit

}



}
Commenter la réponse de bloofi
Messages postés
58
Date d'inscription
lundi 25 avril 2005
Dernière intervention
6 mai 2008
0
Merci
Merci c'est déja fait cela me premet juste de savoir quel bouton de la souris j'ai cliqué mais moi je voudrais savoir sur quel bouton (composant) j'ai cliqué avec ma souris .... y'a t(il moyen de le savoir ????


Merciii
Commenter la réponse de issoux
Messages postés
58
Date d'inscription
lundi 25 avril 2005
Dernière intervention
6 mai 2008
0
Merci
Y'a t'il qualQ'un qui sait m'aider ??? ca me bloque pour la suite de mon projet !!

thanx
Commenter la réponse de issoux
Messages postés
388
Date d'inscription
mercredi 1 octobre 2003
Dernière intervention
3 mai 2006
0
Merci
Arf pardon j'avai mal lu la question ^^



Dans ce cas, essaye d'ajouter un ActionListener a chaque bouton, et tu
peux recuperer le bouton cliqué avec actionEvent.getSource()
Commenter la réponse de bloofi
Messages postés
207
Date d'inscription
vendredi 17 février 2006
Dernière intervention
1 mai 2009
0
Merci
avec getSource() ça t'aiderai pas?!
En gros :

class maClasse implements ActionListener
{
maClasse()
{
//je créé mes boutons
JButton but=new JButton();
but.addActionListener(this);

//etc
}

//quand on clique sur un des boutons :
void actionPerformed(ActionEvent e)
{
//le bouton :
JButton but=(JButton) e.getSource();

//etc
}

}
Commenter la réponse de tucobouch
Messages postés
58
Date d'inscription
lundi 25 avril 2005
Dernière intervention
6 mai 2008
0
Merci
lol merci mais tu n'as pas bien compris ma question . Je suis obliger d'utiliser un MouseListener..Le action peformed me renverra le bouton sur lequel j'ai cliqué mais me diras pas si j'ai cliqué droit )

Ce que je veux c'est que quand je clique droit sur un bouton, je sache quel est ce bouton ! (sur lequel j'ai cliqué)

c pour le sudoku en fait -> (bouton droit sur une case ajoute possibilite, bouton gauche place un chiffre)

Encore merci
@ ++
Commenter la réponse de issoux
Messages postés
207
Date d'inscription
vendredi 17 février 2006
Dernière intervention
1 mai 2009
0
Merci
Tu fais pareil mais avec un MouseListener :

class maClasse implements MouseListener
{
maClasse()
{
//je créé mes boutons
JButton but=new JButton();
but.addMouseListener(this);

//etc
}

//quand on clique sur un des boutons :
void mouseClicked(MouseEvent e)
{
//bouton droit
if (e.getButton()==MouseEvent.BUTTON2)
{
//le bouton :
JButton but=(JButton) e.getSource();

//etc
}
}

}

Si c'est pas ça, je vois pas qu'est ce que c'est!
Commenter la réponse de tucobouch
Messages postés
207
Date d'inscription
vendredi 17 février 2006
Dernière intervention
1 mai 2009
0
Merci
Ton addMouseListener tu le fait bien sur chaque JButton créé ?!
c'est quoi exactement qui marche pas ? ça plante ? exception ? ...
Commenter la réponse de tucobouch
Messages postés
58
Date d'inscription
lundi 25 avril 2005
Dernière intervention
6 mai 2008
0
Merci
Oui je le fais bien sur chaque bouton créer (dans une boucle) .

Je veux "seulement" savoir la chose suivante :

- Quand je clique sur un bouton(JButton) avec le clique droit de ma souris ; je suis obliger de mettre un mouseListener sur mon bouton ....

Ensuite savoir sur quelle bouton j'ai cliqué avec le bouton droit de la souris ...

Il ne fais rien de ce que je lui demande dans mon code plus haut ...

Apparemment il rentre meme pas dans ma boucle (dans mouseClicked)

Bizarre , comprend plus rien , c'est pas grave si vous comprenez pas ce que je veux savoir ... Merci quand meme de votre aide

Bonne soirée ..
Commenter la réponse de issoux
Messages postés
207
Date d'inscription
vendredi 17 février 2006
Dernière intervention
1 mai 2009
0
Merci
J'en perd mon latin... je vois pas d'où vient votre erreur...

au passage :
BUTTON1 : bouton gauche
BUTTON3 : bouton droit de la souris

Bonne chance
Commenter la réponse de tucobouch
Messages postés
16
Date d'inscription
jeudi 6 avril 2006
Dernière intervention
30 juin 2008
0
Merci
j'ai fait une rapide recherche dans la doc officielle et j'ai trouvé une méthode qui pourrait t'intéressé. Il s'agit de la méthode Component.getMousePosition() (méthode utilisable par un Button donc)

Voici la description de la doc: (en anglais)
--------------------------------------------
Returns the position of the mouse pointer in this
Component
's
coordinate space if the
Component
is directly under the mouse
pointer, otherwise returns
null
.
If the
Component
is not showing on the screen, this method
returns
null
even if the mouse pointer is above the area
where the
Component
would be displayed.
If the
Component
Component
s or native windows, this method returns a non-null
value only if the mouse pointer is located above the unobscured part of the
Component
.
is partially or fully obscured by other

For
Container
s it returns a non-null value if the mouse is
above the
Container
itself or above any of its descendants.
Use
Container.getMousePosition(boolean)
if you need to exclude children.



Sometimes the exact mouse coordinates are not important, and the only thing
that matters is whether a specific
Component
is under the mouse
pointer. If the return value of this method is
null
, mouse
pointer is not directly above the
Component
.

--------------------------------------------

En gros, ça retourne les coordonnées de la souris depuis le coin gauche du composant (dans ce cas-ci le Button) seulement si le curseur se trouve sur la composant en question, sinon il renvoit null.

Donc, dans ton cas, pour savoir si le curseur est sur le bouton tu ajoutera l'instruction suivante dans tes conditions:

if(but.getMousePosition() != null){
//instructions à faire quand le curseur est sur le bouton
}

Voilà, j'espère t'avoir aidé... sinon, n'oubliez jamais d'aller jeter un coup d'oeil sur la doc officielle, c'est le meilleur endroit pour trouver une solution
http://java.sun.com/j2se/1.5.0/docs/api/
Commenter la réponse de Nicoschmeii
Messages postés
16
Date d'inscription
jeudi 6 avril 2006
Dernière intervention
30 juin 2008
0
Merci
Voici un exemple simple en utilisant qu'un MouseListener:

import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class MousePosition extends Applet implements MouseListener{
Button but = new Button("Super Bouton");
String phrase = new String("Cliquez sur le bouton!");

public void init() {
this.add(but);
this.addMouseListener(this);
but.addMouseListener(this);
}

public void paint(Graphics g) {
g.drawString(phrase, 50, 70 );
}

public void mouseClicked(MouseEvent e){
if(but.getMousePosition()!=null)
phrase = "Bravo! Vous avez appuyé sur le bouton!";
else
phrase = "Vous n'avez pas appuyé sur le bouton!";
repaint();
}

public void mouseEntered(MouseEvent e){
}

public void mouseExited(MouseEvent e){
}

public void mousePressed(MouseEvent e){
}

public void mouseReleased(MouseEvent e){
}
}
Commenter la réponse de Nicoschmeii
Messages postés
4
Date d'inscription
mercredi 19 mai 2010
Dernière intervention
31 mai 2010
0
Merci
g travallier avec actionListner et j doi gérer un click droit de sourrie sur une image clickable,g un cod avec adapter mais ne fonctionne pas s.v.p aider moi vite merci
Commenter la réponse de fififarawla

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.