IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Appel d'une méthode static dans un listener


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 18
    Points : 20
    Points
    20
    Par défaut Appel d'une méthode static dans un listener
    Bonjour. Je suis embêté dans mon code java car j'ai besoin de faire un appel à une méthode static dans un listener SWT. Je veux que quand je fasse un double clique quelque part un tableau soit généré. J'ai donc d'une part ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    tree.addMouseListener(new MouseAdapter() {
    public void mouseDoubleClick(MouseEvent e) {
    TreeItem[] selection = treeViewer.getTree().getSelection();
    if (selection.length>0)
    		{
    		boolean filledArray = false;
    		filledArray = TasksUI.fillArray(filledArray);
    Sauf que ma méthode fillArray contient la création du viewer de mon tableau, et ça ressemble à ça.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    tableViewer = new TableViewer(table);
    tableViewer.setCellModifier(this);
    tableViewer.setContentProvider(this);
    tableViewer.setLabelProvider(this);
    Le problème est que eclipse me dit :
    cannot use in static context (à propos de this),
    et si j'enlève le mot clé static de la déclaration de ma méthode alors il me dit :
    Cannot make a static reference to the non-static method fillArray(Boolean) from the type TasksUI

    Je pense que ceci est dû au fait que la méthode addMouseListener est static, ou un truc dans le genre, mais qu'est-ce que je peux y faire svp ?

    Je suis coincé sur ce tableau depuis un bout de temps ...

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2008
    Messages : 70
    Points : 76
    Points
    76
    Par défaut
    Bonjour ,


    une piste pour ton problème. Pour ma part j'aurai dérivé la classe listener ( au lieu d'une classe interne anonyme ) , puis je lui aurais passé les paramètres voulues tout simplement.

    Celà devrait résoudre ton problème .

    tiens moi au courant

  3. #3
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 6 887
    Points
    6 887
    Par défaut
    Si "fillArray" est "static" c'est qu'elle "fonctionne" sans instance de TaskUI. Tu ne peux donc pas utiliser le mot clé "this" !

    Le mot clé "this" sert à faire référence à l'instance à laquelle appartient la méthode.

    Si tu ne la rends plus "static", il faut donc que tu appelles la méthode en utilisant une instance. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TaskUI task = new TaskUI();
    task.fillArray(filledArray);

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 18
    Points : 20
    Points
    20
    Par défaut
    Merci beaucoup, j'ai pu progresser grâce à vos réponses.

    Envie d'un plus gros défi ? Voyez mon post suivant, toujours sans réponses (et ce sur aucun forum ^^)

    http://www.developpez.net/forums/d11...bleme-refresh/

    À bientot

  5. #5
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 6 887
    Points
    6 887
    Par défaut
    Désolé mais j'y connais rien à SWT

    Si ton sujet est résolu, pense à cliquer sur

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 22/03/2010, 17h52
  2. Réponses: 6
    Dernier message: 24/03/2009, 17h17
  3. Appel d'une méthode static d'une autre classe
    Par Mooneer dans le forum Langage
    Réponses: 2
    Dernier message: 30/01/2008, 20h05
  4. Réponses: 6
    Dernier message: 10/10/2007, 21h11
  5. Réponses: 16
    Dernier message: 26/10/2006, 17h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo