Impeccable ! C'est ca que je cherchais !
Merci =)
Aur�lien
Le mardi 28 mai 2002, � 02:49 , Truffot J�r�me a �crit :
> 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
>>
>>
>>
>