Attention, si ExpClass est une classe fille de MainFrame (ie une classe
d�riv�e), tu dois la d�clarer de la fa�on suivante :
public class ExpClass extends MainFrame {
...
}

Mais je ne pense pas que ce soit ce que tu veux faire. Si c'est dans
MainFrame que tu instancie une classe ExpClass et que tu veux avoir acc�s �
partir de ton objet ExpClass cr�� � l'objet MainFrame qui l'a cr��, je te
conseillerais de d�clar� un attribut mainFrame � ta classe ExpClass et un
constructeur ExpClass(MainFrame mf).
public class ExpClass extends JFrame {
  protected MainFrame mainFrame ;

  public ExpClass (MainFrame mf) {
    mainFrame = mf ;
    ...
  }
}
Puis dans MainFrame, tu appelles ton constructeur avec new ExpClass(this) ;

Ca rejoint une id�e propos�e pr�c�dement mais je ne sais ni c'est une bonne
m�thode ni si �a r�pond � ta question. A toi de voir si �a t'aide.

J�r�me.

-----Message d'origine-----
De : Aur�lien Mazurie [mailto:[EMAIL PROTECTED]]
Envoy� : mardi 28 mai 2002 14:26
� : [EMAIL PROTECTED]
Objet : Re: Port�e des variables



Je ne cherche pas � avoir mes fonctions getConnection() et 
doMySQLconnection() comme statiques; j'ai juste tent� pour voir si le 
compilateur l'acceptait. Je l'ai d'ailleurs retir�. Mais le pb. c'est 
que maintenant je ne sais pas comment appeler ces fonctions � partir des 
classes filles.

Par exemple, dans la classe fille, voil� le probl�me:

public class ExpClass extends JFrame
  {
   public ExpClass ()
    {
     Connection new_conn = [quoi mettre ici ?].getConnection();
     ...

La classe m�re qui appelle ExpClass s'appelle MainFrame, et j'ai essay� 
MainFrame.this, mainFrame.this ... pour appeller getConnection dans 
ExpClass. Rien ne marche. (note: mainFrame correspond � l'objet cr�� 
lors de l'appel de MainFrame par la classe principale du programme (via 
MainFrame mainFrame = new MainFram() ))

Aur�lien

Le mardi 28 mai 2002, � 04:01 , Sebastien Cesbron a �crit :

> Le probl�me c'est que tu utilises conn qui n'est pas static dans des 
> m�thodes static.
> Tu as deux solutions pour r�soudre ton probl�me
>
> - tu ne mets pas ta m�thode doMySQLconnection static
> - tu veux absolument la mettre static. Dans ce cas tu utilises une 
> variable locale � la m�thode et tu retournes une Connection et tu 
> l'utiliseras dans ton code en faisant conn = doMySQLconnection(...)
>
> Seb
>
> Aur�lien Mazurie wrote:
>> Grrr... Je d�sesp�re de trouver une r�ponse � un probl�me tout simple, 
>> d� au fait que je d�bute en Java... Je suis s�r que vous allez trouver 
>> �a simplissime:
>> J'ai une classe principale qui contient des variables qui seront 
>> utilis�es par toutes les classes filles appell�es (ces classes 
>> correspondent � des formulaires, des bo�tes de dialogues, etc.). Ces 
>> variables sont appell�es � changer (par exemple: la classe m�re 
>> contient une variable indiquant le nombre de fen�tres ouvertes, et 
>> chaque classe fille doit y acc�der pour pouvoir l'incr�menter ou la 
>> d�cr�menter).
>> Le probl�me est que le compilateur me sort toujours des choses comme 
>> "il faut que votre variable soit d�clar�e comme statique pour �tre 
>> appell�e". P�nible ! Je ne veux pas de variable statique...
>> Vous avez ci-dessous un extrait de mon code: je veux "partager" la 
>> variable conn entre toutes les classes filles appell�es � partir de la 
>> classe m�re MainFrame (qui est elle m�me appell�e par la class 
>> principale du programme). J'ai lu quelque part que l'on ne pouvait pas 
>> le faire directement, donc j'ai cr�� dans la classe appelante 
>> (MainFrame) une fonction "getConnection" qui renvoie la valeur de conn 
>> (et "doMySQLconnection" qui la d�finie). A ce stade, pfff... J'ai tout 
>> essay�. Si je ne d�clare pas les fonctions comme statiques, dans les 
>> classes filles j'ai un message "A reference to an instance of class 
>> MainFrame is required to access this non static member of it" lorsque 
>> j'essaye de les appeller (par le biais d'un "autre_conn = 
>> MainFrame.getConnection()")... Si je les d�clare comme statiques, 
>> comme ci-dessous, j'ai le m�me probl�me avec la variable conn... 
>> Snif ! Je veux bien indiquer une instance active de MainFrame, mais 
>> comment on fait �a ?
>>     Aur�lien Mazurie
>> public class MainFrame extends JFrame
>>  {
>>   // Acces a la base MySQL
>>   private Connection conn;
>>   public static void doMySQLconnection (String host, String user, 
>> String password)
>>    {
>>     try { Class.forName("org.gjt.mm.mysql.Driver"); }
>>     catch (java.lang.ClassNotFoundException e)
>>      {
>>       System.err.println(" Erreur ClassNotFoundException: ");
>>       System.err.println(" " + e.getMessage());
>>      }
>>     try { conn = 
>> DriverManager.getConnection("jdbc:mysql:///mabase", "", ""); }
>>     catch (SQLException ex)
>>      {
>>       System.err.println(" Erreur SQLException:");
>>       System.err.println(" " + ex.getLocalizedMessage() + "\n 
>> (erreur " + ex.getErrorCode() + ")");
>>      }
>>    }
>>   public static Connection getConnection ()
>>    {
>>     return conn;
>>    }
>>  ...
>
>
>
____________________________________________________________________________
__
> ifrance.com, l'email gratuit le plus complet de l'Internet !
> vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP...
> http://www.ifrance.com/_reloc/email.emailif
>
>
>

Répondre à