cs_dildil
Messages postés2Date d'inscriptionvendredi 31 octobre 2008StatutMembreDernière intervention 7 juillet 2009
-
6 juil. 2009 à 23:56
Cornellus1985
Messages postés22Date d'inscriptiondimanche 26 avril 2009StatutMembreDernière intervention 7 juillet 2009
-
7 juil. 2009 à 16:59
Bonsoir.
Voila j'ai un petit problème dans le projet que je mène actuellement.
Pour faire simple, j'ai des packages (src/gui et src/musique entre autres), mais depuis une classe du package gui je ne peux accéder qu'à une méthode statique d'une classe du package gui.
J'aimerai donc savoir s'il est possible d'accéder à une méthode non statique.
Pour résumer :
package gui;
public class Fenetre extends JFrame implements ActionListener{
public void actionPerformed(ActionEvent e)
{
musique.Renommage.renommage(dossier, mode);
}
}
package musique;
public class Renommage {
public static void renommage(String rep, int mode) /* Obligé de mettre en static, sinon l'appel ne marche pas */
{
}
}
Le problème c'est que renommage fait des modifications, et ne peut donc pas être static (mais je sais que ça marche sinon, j'ai essayé avec une méthode de lecture qui elle est en static). Sans le static, l'erreur est "Impossible de créer une référence statique à une méthode non statique renommage(String, int) à partir du type Renommage"
Bref je ne comprends pas vraiment, si vous pouviez m'éclairer !
Merci d'avance
Cordialement.
Renaud
A voir également:
Une référence de membre non statique doit être relative à un objet spécifique
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 7 juil. 2009 à 07:35
Salut,
C'est tout simplement ton appel à ta fonction qui n'est pas le bon : là tu l'appelle justement de façon statique, c'est à dire que tu ne l'appelle pas à partir d'une instance de ta classe Renommage, mais à partir de la classe elle-même.
Il te faut créer une instance pour pouvoir appeler les fonctions membres de ta classe : c'est à la base de tout langage Objet. Tu devrais lire un tutorial (même basique) sur java avant de te lancer dans la programmation Java, sinon tu vas droit dans le mur...
package musique;
public class Renommage {
public void renommage(String rep, int mode
{
}
}
package gui;
public class Fenetre extends JFrame implements ActionListener{
Renommage instanceRenommage = new Renommage();
public void actionPerformed(ActionEvent e)
{
instanceRenommage.renommage(dossier, mode);
}
}
cs_dildil
Messages postés2Date d'inscriptionvendredi 31 octobre 2008StatutMembreDernière intervention 7 juillet 2009 7 juil. 2009 à 10:13
D'accord merci.
En fait c'est ce que je faisais jusqu'à présent, mais lorsque j'ai créé
mes packages j'ai modifié les appels ... j'aurai du m'en apercevoir
tout seul j'ai honte lol
Cornellus1985
Messages postés22Date d'inscriptiondimanche 26 avril 2009StatutMembreDernière intervention 7 juillet 2009 7 juil. 2009 à 16:59
Une petite paranthese, une methode statique est une methode qui agit sur une seule et unique instance qui est similaire pour tous les objets d'une classe. Son appel ne se fait, par consequent, plus sur un objet, mais sur une classe. Si tu continuais a utiliser ta methode statique tu aurais du faire un appel comme suit :
Renommage.renommage(rep, mode);