OVH Cloud OVH Cloud

Re: Implémentation d'un listener

1 réponse
Avatar
M6C
> private class MyListener implements ActionListener, MouseWheelListener{
>
> public void actionPerformed(ActionEvent arg0) {
>
> }
>
> public void mouseWheelMoved(MouseWheelEvent arg0) {
>
> }
>
> }
Si tu l'utilises exclusivement à partir d'une seul class, tu peux mettre ce
code dans la class dans laquelle tu vas l'utiliser. Donc tu feras une
"innerclass". Et seulement dans ce cas là, il y a un interet à la laisser
"private".


> Histoire d'avoir quelque chose de réutilisable, tout en gardant le coté
> "privé" des classes anonymes. Seul probleme, j'ai pas le droit de mettre
> la classe en private... (j'ai pas vraiment compris pourquoi d'ailleurs).
Tu peux la mettre en private si C une innerclass si non, je vois pas trop
l'interet. Mis à part si tu l'utilise à partir d'une methode main() qui se
trouverais dans cette même class..... Mais je crois pas que ce soit ton but.

Pour info : Une class "private" ne peut pas être accessible pour une autre
class.... Donc sans grand interet. Par contre tu peux mettre les
constructeurs en "private" et donc n'acceder qu'aux methodes "public
static".

David

1 réponse

Avatar
none
private class MyListener implements ActionListener, MouseWheelListener{

public void actionPerformed(ActionEvent arg0) {

}

public void mouseWheelMoved(MouseWheelEvent arg0) {

}

}



Si tu l'utilises exclusivement à partir d'une seul class, tu peux
mettre ce

code dans la class dans laquelle tu vas l'utiliser. Donc tu feras une
"innerclass". Et seulement dans ce cas là, il y a un interet à la laisser
"private".



Oui, c'est exactement ce que je veux faire (jme suis pas très bien
exprimé, j'aurais du mettre plus de code)

Je voudrais pouvoir faire :

class MonPanel extends JPanel {

private JButton...
private blablabla...

//constructeur
public MonPanel(...){
...
private class ZoomListener implements ActionListener, MouseWheelListener{
public void actionPerformed(ActionEvent arg0) {
}

public void mouseWheelMoved(MouseWheelEvent arg0) {
}
}
}

Mais eclipse (logiciel avec lequel j'écris mon code) me dit que ma
classe ZoomListener ne peut etre que final ou abstract...