Un petit probléme avec les methodes Static et Non-Static...

Un petit probléme avec les methodes Static et Non-Static... - Java - Programmation

Marsh Posté le 14-05-2003 à 19:53:05    

Voila, je suis sur un petit programme ( un de mes premiers trucs valable ) et j'ai une fenétre principale, qui est lancée par un
 
Application.class, dans lequel se trouve le main, qui crée une instance fenetre de ma Classe Fenetre.class.
 
Jusqu'ici pas de problémes, ensuite j'ai des petits popups dans tout les sens ( style boites de dialogue OK, Annuler, etc.... ), et entre autre, une qui est censée me renvoyer un mot de passe et un login. ça marche impec si je souhaite récuperer le mot de passe à partir de ma class "FenetreMotDePasse.class" mais moi je voudrais lancer un methode du type :
 

public void maMethode( String login, String motDePasse){....}
 
 
qui se trouve elle dans ma classe Fenetre.class mais si je fait dans ma classe FenetreMotDePasse quelque chose comme :  
 

Fenetre.maMethode(login, password);

 
il me dit texto :
 

ChargerPartie.java:86: non-static method load(java.lang.String,java.lang.String) cannot be referenced from a static context

 
et si je met maMethode en static, ça merde avec d'autre methodes de la classe fenetre  
 :fou:  
 
Enfin voila, avis aux âmes charitables qui pourront m'aider  :)

Reply

Marsh Posté le 14-05-2003 à 19:53:05   

Reply

Marsh Posté le 14-05-2003 à 19:54:23    

ben il te faut un objet fenetre...

Reply

Marsh Posté le 14-05-2003 à 19:55:07    

ben tu dois appeler ta methode maMethode(...) sur une instance de Fenetre (un objet), pas sur la classe elle-meme
 
edit: mert, grillè


Message édité par the real moins moins le 14-05-2003 à 20:07:43

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 14-05-2003 à 19:56:33    

Oui, mais je crée déja une instance de fenetre dans ma classe application.class qui me sert de lanceur ( dans laquelle il y à le main ), donc je vais pas recréer une fenetre principale dans mon popup, si ? :??:


Message édité par antikor le 14-05-2003 à 20:02:23
Reply

Marsh Posté le 14-05-2003 à 20:08:13    

ben faut passer la reference à ton popup alors... (qui est representé par une autre classe?)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 14-05-2003 à 20:15:50    

oui, mon popup est une fenetre crée dans une autre classe, c'est une boite de saisie, qui lorsqu'on clique sur ok recupére les infos entrées, mais sinon que veux tu dire par passer la référence au popup ?? ( désolé si je suis lourd.....)

Reply

Marsh Posté le 14-05-2003 à 20:28:52    

ben euh
si dans Fenetre, tu crées le popup, tu lui passes la ref comme ça:
 
new TonPopup(this)
 
et le constructeur de TonPopup sera
public TonPopup(Fenetre fen) {
   this.parent = fen;
}
 
(tu ajoutes un attribut "private Fenetre parent" à TonPopup)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 14-05-2003 à 20:35:16    

ok, merci je vais voir ça, mais de tt maniére pas de regret, j'aurais pas trouvé tt seul  :)

Reply

Marsh Posté le 14-05-2003 à 20:58:25    

en fait j'ai toujours un probléme, à la compil il me dit encore ça :
 
 
ChargerPartie.java:88: non-static method load(java.lang.String,java.lang.String) cannot be referenced from a static context
  Fenetre.load(nomJoueur,passJoueur);
                       ^
Fenetre.java:318: cannot resolve symbol
symbol  : constructor ChargerPartie (Fenetre.ActionChargerPartie)
location: class ChargerPartie
     ChargerPartie chargerPartie = new ChargerPartie( this );
                                          ^
2 errors
 
 
load c'est la mehode que je souhaite appeler, et ChargerPartie, c'est mon popup


Message édité par antikor le 14-05-2003 à 20:58:44
Reply

Marsh Posté le 14-05-2003 à 21:00:16    

ça

Citation :


ChargerPartie chargerPartie = new ChargerPartie( this );  


se trouve ds quelle classe??  
"this" ça reference l'objet "courant" hein; si t'es dans ton ActionMachin, this c'est forcément pas fenetre...


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 14-05-2003 à 21:00:16   

Reply

Marsh Posté le 14-05-2003 à 21:11:55    

la je me trouve dans la classee ActionCharger, qui est dans la classe Fenetre, mais j'ai essayé de mettre super à la place de thi, et ça marche po

Reply

Marsh Posté le 14-05-2003 à 21:24:04    

ben faut passer la reference de fenetre à ton action [:spamafote]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed