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;
    }

  ...

Répondre à