MouseListener & ActionListener

swiss_cheese10 Messages postés 55 Date d'inscription vendredi 26 septembre 2003 Statut Membre Dernière intervention 30 septembre 2004 - 4 mars 2004 à 11:10
cs_grandtix Messages postés 2 Date d'inscription mardi 25 janvier 2005 Statut Membre Dernière intervention 28 avril 2006 - 28 avril 2006 à 11:17
Bijour tout le monde !

Sur ma fenêtre, j'ai des boutons auxquels j'attribue un évènement (ActionListener) et j'aimerais utiliser un évènement de souris (MouseListener)...

class Fenetre extends JFrame implements ActionListener
{


Comment faire pour gérer sur une fenêtre à la fois les évènements souris et boutons ??????

thanks !

17 réponses

dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
4 mars 2004 à 11:51
Re facile:
tu implements egalement MouseListener....
class Fenetre extends JFrame implements ActionListener, MouseListener
0
swiss_cheese10 Messages postés 55 Date d'inscription vendredi 26 septembre 2003 Statut Membre Dernière intervention 30 septembre 2004
4 mars 2004 à 12:52
Ca me met cette erreur :

TicGraph.java:5: Fenetre should be declared abstract; it does not define mousePressed(java.awt.event.MouseEvent) in Fenetre
class Fenetre extends JFrame implements ActionListener, MouseListener
^
1 error


Tu peux m'aider ??
0
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
4 mars 2004 à 13:04
bien sur, il faut que tu reecrives la methode mousePressed si tu veux implements de MouseListener...
0
swiss_cheese10 Messages postés 55 Date d'inscription vendredi 26 septembre 2003 Statut Membre Dernière intervention 30 septembre 2004
4 mars 2004 à 13:22
j'ai écrit ca en dessous:

class fenetre implements mouselistener
{
public fenetre
{
//blablabla...
}

public void MouseClicked(MouseEvent e)
{
if (e.getButton() == MouseEvent.BUTTON1)
System.out.println("bouton gauche");

if (e.getButton() == MouseEvent.BUTTON2)
System.out.println("bouton du milieu");

if (e.getButton() == MouseEvent.BUTTON3)
System.out.println("bouton droit");
}
}

je vois pas ou ca merde...
0

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

Posez votre question
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
4 mars 2004 à 13:34
ou sinon, tu fais un .addMouseListener(new MyListener());
a ta frame (tu enleves le implements Mouse Listener)
avec
//////////////////////////////////////////////////////////////////////////////
/**MouseListener
*/
private class MyListener
extends MouseAdapter {

private MyListener() {
popup = popupMenu;
}

public void mousePressed(MouseEvent e) {
}

public void mouseReleased(MouseEvent e) {
}

public void mouseClicked(MouseEvent e){
}
}
0
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
4 mars 2004 à 13:38
desole, vire popupmenu,mauvais copier coller!
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
4 mars 2004 à 13:43
:big) Neodante :big)

Juste un truc comme ça connais-tu les interfaces Java et as-tu regarder la Javadoc correspondante ... y a toutes les infos concernant les KeyListener, les MouseListener, ... etc (notamment toutes les méthodes à surcharger -> toutes les méthodes de l'interface en gros !) faut lire la javadoc on y trouve toutes les réponses à nos questions useulles voir même plus ... mais c'est en anglais la langue de l'informatique ! lol
@+

[Responsable www.neogamedev.com]
0
swiss_cheese10 Messages postés 55 Date d'inscription vendredi 26 septembre 2003 Statut Membre Dernière intervention 30 septembre 2004
4 mars 2004 à 13:48
En fait, j'avais déjà fait un prog que j'avais trouvé dans un livre sur les clics de souris et j'ai exactement copié le code et modifié l' "intérieur" et ca met l'erreur qu'il y a plus haut... je capte plus !
0
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
4 mars 2004 à 14:00
Swiss, ecoutes NeoDante :
ta question viens du fait que tu n'as pas assimile les concepts objets
l'exemple que je t'ai donne est bien, mais l'ideal est de comprendre pourquoi on fait les chose, pourquoi on ecrit ou utilise des interfaces, et la tu trouveras d'ou viens ton erreur,
mais si tu veux une reponse plus vite sans te casser le cul, envoie ton bout de code, il y a a priori une erreur...
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
4 mars 2004 à 14:09
:big) Neodante :big)

Si tu implémentes toutes les méthodes abstraites de ton interface pas de soucis normalement ... j'ai pas télécharger le javadoc à mon boulot donc je pourrais pas plus t'aider mais si je me souviens bien ce sont les même que celles que t'as écrit dmaillet !!! Peut pas plus t'aider ...
@+

[Responsable www.neogamedev.com]
0
swiss_cheese10 Messages postés 55 Date d'inscription vendredi 26 septembre 2003 Statut Membre Dernière intervention 30 septembre 2004
4 mars 2004 à 15:02
C bon, j'ai trouvé...

En fait, fallait mettre tous les évènements de la souris :

public void mouseClicked(MouseEvent e)
{
if (e.getButton() == MouseEvent.BUTTON3)
{
FenAPropos fen_apropos = new FenAPropos(this);
fen_apropos.show();
}
}

public void mousePressed  (MouseEvent ev) {}
public void mouseReleased (MouseEvent ev) {}
public void mouseEntered  (MouseEvent ev) {}
public void mouseExited   (MouseEvent ev) {}



Ben merci quand meme de m'avoir un peu cassé au dernier de dmaillet paske t'as aussi été un débutant comme moi et tu devais pas tout savoir du premier coup..

Merci quand meme les gars ! a la proch et bonne prog !
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
4 mars 2004 à 15:31
:big) Neodante :big)

Je les avais oublié ces deux là ENtered et Exited ... oups !! lol
@+

[Responsable www.neogamedev.com]
0
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
4 mars 2004 à 15:51
Ne te meprends pas : je ne te cassais pas...
je disais juste que beaucoup de gens qui debute en java n'apprivoise pas assez les concepts objets pour comprendre pourquoi ill faut toute les methode si tu utilises une interface et pas qd tu fais un extends...
Dans ton cas, l'exemple que je t'ai donne est archi-simple et marche bien sur car mouseAdapter possede l'interface mouselistener...
en utilisant l'implements tu es oblige de redeclarer (surcharger) toute les methodes, meme si tu t'en sers pas...
Et dernier petit conseil, d'un ancien debutant pas si vieux que ca,
il est bien souvent essentiel d'avoir une fenetre ouverte sur java.sun.com, le site de sun, pour consulter la doc api, ou bien consulter des tutos tres bien faits...
je suis desole si je t'es vexe, ce n'etait pas voulu...
on n'a tous ete des debutants....
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
4 mars 2004 à 17:12
:big) Neodante :big)

Juste pour être un peu pointilleux sur les termes : ce n'est pas de la surcharge mais de la substitution :
- la surcharge est le fait de déclarer plusieurs fois une méthode portant le même nom mais possédant une signature différente.
- la substitution (certains te diront surdéfinition mais je trouve le terme plutôt inapproprié et pas révélateur !) consiste à redéfinir une méthode et donc à la subsituer à la première ...

C'est la différence entre override(substitution) et overload(surcharge) ...

Voilà voilà ... bon d'accord je suis chiant je sais !!! ;-)
@+

[Responsable www.neogamedev.com]
0
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
4 mars 2004 à 17:15
oui, pardon... je voulais dire surdefinition... merci pour le rectificatif...
voila ce que c'est que d'ecrire plus lentement que ses pensees!!! ;o)
non, tu n'es pas chiant, il ne faut pas laisser passer des erreurs pareilles!
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
4 mars 2004 à 17:21
:big) Neodante :big)

Ah bon tu me rassures !!!! lol
:-p @+

[Responsable www.neogamedev.com]
0
cs_grandtix Messages postés 2 Date d'inscription mardi 25 janvier 2005 Statut Membre Dernière intervention 28 avril 2006
28 avril 2006 à 11:17
bonjour ,

j'ai creer dynamiquement un tqbleau de label, je voudrais pouvoir changer la couleur d'un des label quand je clique dessus,

ca c'est mon petit bout de code ou je le cree, j'ai rajouté le mouseListener, mais je n'arrive pas a recuperer le bon label

Label [][] horaires;
        horaires=new Label [24][7];
        for (int j=0;j<7;j++)
        {
            for (int k=0;k<24;k++)
            {
                horaires[k][j]=new Label(semaineSheet, SWT.BORDER);
                horaires[k][j].setBounds(k*20+10,j*20+10,20,20);
                horaires[k][j].addMouseListener(new org.eclipse.swt.events.MouseAdapter()   {
                    public void mouseDown(org.eclipse.swt.events.MouseEvent e) {
                             horaires[k][j].label.setBackground(SWT.COLOR_BLACK));     } });;
               
            }
           
        }
ya moyen via le mouseEvent e de recuperer l'objet sur lequel on clique et apres acceder a ses proprietes?

please helppppp
0
Rejoignez-nous