Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

JPanel et MouseListener

2 réponses
Avatar
#cyrille37#
Bonjour,
une p'tite question de conception.

J'ai une classe qui h=E9rite de JPanel. Pour que cette classe re=E7oive
les =E9vennements de souris :
public class JPanelGraph
extends JPanel
implements MouseListener {
public JPanelGraph() {
super();
this.addMouseListener(this);
}
Mais ce n'est pas la bonne fa=E7on, car il faudrait que je surcharge
*tous* les constructeurs.

Y-a-t-il une m=E9thode de JPanel a surcharger afin qu'il n'y ai qu'un
endroit o=F9 faire l'insription au mouseListener ? Ou bien faut il
utiliser un autre pattern et dans ce cas quel est-il ?

Merci beaucoup, Cyrille.

2 réponses

Avatar
Raphael Tagliani
Utilise MouseAdapter.

Bonjour,
une p'tite question de conception.

J'ai une classe qui hérite de JPanel. Pour que cette classe reçoive
les évennements de souris :
public class JPanelGraph
extends JPanel
implements MouseListener {
public JPanelGraph() {
super();
this.addMouseListener(this);
}
Mais ce n'est pas la bonne façon, car il faudrait que je surcharge
*tous* les constructeurs.

Y-a-t-il une méthode de JPanel a surcharger afin qu'il n'y ai qu'un
endroit où faire l'insription au mouseListener ? Ou bien faut il
utiliser un autre pattern et dans ce cas quel est-il ?

Merci beaucoup, Cyrille.



Avatar
Black Myst
Bonjour,
une p'tite question de conception.

J'ai une classe qui hérite de JPanel. Pour que cette classe reçoive
les évennements de souris :
public class JPanelGraph
extends JPanel
implements MouseListener {
public JPanelGraph() {
super();
this.addMouseListener(this);
}
Mais ce n'est pas la bonne façon, car il faudrait que je surcharge
*tous* les constructeurs.
Pourquoi serais-tu obligé de 'surcharger' tous les constructeurs ?


Ce qui est courrant, c'est de faire une méthode private 'init()' qui
fait ce que tu as besoin (initialisation de tous tes listeners...) et
qui est appelé par tous les constructeurs de ta classe.


(D'ailleur je suis pas sur qu'il soit correct de parler de surcharge de
constructeur, mais c'est une autre histoire...)


Y-a-t-il une méthode de JPanel a surcharger afin qu'il n'y ai qu'un
endroit où faire l'insription au mouseListener ? Ou bien faut il
utiliser un autre pattern et dans ce cas quel est-il ?
Il n'est pas nécessaire de surcharger JPanel pour ajouter un

mouseListener... tout dépends de ce que tu veux faire.

Black Myst