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 :

[Language]problème lors de l'appel d'une méthode


Sujet :

Langage Java

  1. #1
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 153
    Points : 100
    Points
    100
    Par défaut [Language]problème lors de l'appel d'une méthode
    Bonjour,

    là g un pb un peu bizarre!! je fais appel à une méthode d'une classe à partir du constructeur d'une autre classe. La méthode est déclarée public.
    Lors de l'appel, un message d'erreur me dit que la méthode est non-static et elle ne peut être appelée à partir d'un contexte statique. Je ne comprends pas puisque l'appel se fait à partir d'un constructeur donc ce n'est pas un contexte statique. Vous voyez ce que je veux dire???

    Merci de bien vouloir m'aider

    Ciao !!



    [Modéré par Didier] : ajout de tag dans le titre - Les règles du forum Java
    Rien ne sert de courir, il faut partir à point.

  2. #2
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Fais voir ton code stp...

  3. #3
    Membre averti Avatar de piff62
    Inscrit en
    Décembre 2003
    Messages
    431
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2003
    Messages : 431
    Points : 417
    Points
    417
    Par défaut
    Ta classe qui fais appel a l'autre methode que tu dit public .. elle n'est pas elle meme static ?
    Sinon tu code explique mieu que les mots parfois

  4. #4
    Membre régulier Avatar de jiraiya
    Inscrit en
    Mai 2002
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 100
    Points : 116
    Points
    116
    Par défaut
    ben c'est surement normal si tu fais un truc du genre TaClasse.taméthode() si la méthode n'est pas static, ça te mettra cette erreur à chaque fois

  5. #5
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 153
    Points : 100
    Points
    100
    Par défaut
    Fais voir ton code stp...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     public class DBOPasswordDialog extends JDialog{
     
        private JLabel label ;
        private JTextField passwordText;
        private JButton okButton ;
        public String newPassword ;
        public String fileName;
     
       /**
        * Constructor
        */
        public DBOPasswordDialog() {
     
            super();
     
            this.setLayout(null);
     
            JLabel label = new JLabel("Enter new dbo password") ;
            passwordText = new JTextField() ;
            JButton okButton = new JButton("Ok");
     
            label.setBounds(30, 10, 150, 100);
            passwordText.setBounds(180, 50, 200, 20);
            okButton.setBounds(180, 100, 50, 20);
     
            add(label);
            add(passwordText);
            add(okButton);
     
            this.setTitle("change the dbo password") ;
            this.setSize(400, 180);
            this.setVisible(true);
     
            setLocationRelativeTo(getParent());
            setVisible(true);
     
            okButton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    okButton_actionPerformed(e);
                }
            });
        }
     
        public void okButton_actionPerformed(ActionEvent e) {
            newPassword = passwordText.getText() ;
            [b]fileName = MainFrame.getPropertiesFileName() ;[/b]
            ChangeDBOConnexionManager changeDBO = new     ChangeDBOConnexionManager(fileName) ;
            System.out.println(changeDBO.PropertiesFileName); 
            this.dispose();
        }
    }
    C'est la méthode getPropertiesFileName() de la classe MainFrame que je cherche à appeler. Elle est déclarée publique dans MainFrame, et MainFrame n'est pas statique. Tout comme vous pouvez le constater Cette classe n'est pas statique non plus.

    Ta classe qui fais appel a l'autre methode que tu dit public .. elle n'est pas elle meme static ?
    Si g bien compris une classe statique est une classe qui n'a pas d'instance et donc n'a pas de constructeur, or moi ma classe est instanciée et l'appel de cette méthode se fait à partir du constructeur.

    ben c'est surement normal si tu fais un truc du genre TaClasse.taméthode() si la méthode n'est pas static, ça te mettra cette erreur à chaque fois
    Tu peux m'expliquer un peu plus ce que tu veux dire stp ?

    Merci pour votre aide
    Rien ne sert de courir, il faut partir à point.

  6. #6
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    getPropertiesFileName(); n'est pas statique.

    Il faut que tu fasses
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MainFrame frame = new MainFrame();
    fileName = frame.getPropertiesFileName();

  7. #7
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 153
    Points : 100
    Points
    100
    Par défaut
    bin oui t'as raison, il faut instancier une classe pour faire appel à ses méthodes. Merci bcp !!!
    Rien ne sert de courir, il faut partir à point.

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

Discussions similaires

  1. Problème lors de l'appel d'une procédure stockée
    Par ToxiZz dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 21/05/2006, 23h42
  2. Créer un tableau lors de l'appel d'une fonction
    Par MiJack dans le forum Langage
    Réponses: 11
    Dernier message: 01/02/2006, 11h18
  3. Réponses: 2
    Dernier message: 09/01/2006, 09h38
  4. Réponses: 5
    Dernier message: 06/01/2006, 11h41
  5. [POO] Problème lors de l'appel d'une propriété d'un objet.
    Par akecoocoo dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/08/2005, 08h51

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