Methode statique erreur JAVA
Résolu
didy_gwatinik
Messages postés
352
Date d'inscription
Statut
Membre
Dernière intervention
-
didy_gwatinik Messages postés 352 Date d'inscription Statut Membre Dernière intervention -
didy_gwatinik Messages postés 352 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis sur un projet de gestion de prêts en JAVA, je débute totalement!!
Je voudrai appeler une méthode de ma classe TabLivre mais cela ne marche pas, j'ai l'erreur suivante : Cannot make a static reference to the non-static method.Je n'ai aucune méthode statique hormis le main et ce n'est pas le main qui appelle ma méthode donc je ne comprends pas. Si quelqu'un pouvait m'aider, voilà mon code :
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source == Ajouter)
{
String ISBN, Titre, Auteur, Pages, Image, Category, Resume;
System.out.println("Ajouter un livre");
ISBN = ISBNT.getText();
Titre = TitreT.getText();
Auteur = AuteurT.getText();
Pages = PagesT.getText();
Category = PagesT.getText();
Resume = resumeT.getText();
Image = ImageT.getText();
Livre livre = new Livre(ISBN, Titre, Auteur, Pages, Category, Resume, Image);
TabLivre.ajouter(livre); //renvoie l'erreur
}
}
Je suis sur un projet de gestion de prêts en JAVA, je débute totalement!!
Je voudrai appeler une méthode de ma classe TabLivre mais cela ne marche pas, j'ai l'erreur suivante : Cannot make a static reference to the non-static method.Je n'ai aucune méthode statique hormis le main et ce n'est pas le main qui appelle ma méthode donc je ne comprends pas. Si quelqu'un pouvait m'aider, voilà mon code :
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source == Ajouter)
{
String ISBN, Titre, Auteur, Pages, Image, Category, Resume;
System.out.println("Ajouter un livre");
ISBN = ISBNT.getText();
Titre = TitreT.getText();
Auteur = AuteurT.getText();
Pages = PagesT.getText();
Category = PagesT.getText();
Resume = resumeT.getText();
Image = ImageT.getText();
Livre livre = new Livre(ISBN, Titre, Auteur, Pages, Category, Resume, Image);
TabLivre.ajouter(livre); //renvoie l'erreur
}
}
A voir également:
- Methode statique erreur JAVA
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
2 réponses
Salut,
++
TabLivre.ajouter(livre)serait approprié si et seulement si la méthode ajouter était statique dans la classe TabLivre (ce n'est probablement pas le cas). Le fragment de code exposé ne me permet pas de voir la définition de TabLivre, mais tu devrais peut-être faire qqchose du genre
TabLivre tabLivre = new TabLivre(); tabLivre.ajouter(livre);Il est aussi bien de respecter les conventions de nommage Java (première lettre majuscule pour le nom d'une classe et minuscule pour une instance).
++
Ben dans ton programme tu conserves une variable avec l'instance de TabLivre et tu n'appeleras le constructeur qu'une seule fois.
Tu peux éventuellement créer une méthode
++
Tu peux éventuellement créer une méthode
TabLivre getTabLivre() { if (tabLivre == null) { tabLivre = new TabLivre(); } return tabLivre; }et déclarer tabLivre en tant que membre ailleurs (dans la classe contenant ton main(), par exemple). Par la suite, tu n'accèdes plus jamais tabLivre directement, mais uniquement via l'accesseur (la méthode get).
++
public class TabLivre {
Livre monTabLivre[] = new Livre[20];
int nb;
public TabLivre(){
nb = 0;
}
public int getNb() {
return nb;
}
public void setNb(int nb) {
this.nb = nb;
}
public void ajouter(Livre monLivre){
//contenu
}
public Livre affiche(int i){
//contenu
}
public Livre afficheTout(int i){
//contenu
}
public void supprimer(String ISBN){
//contenu
}
public void modifier(String ISBN){
//contenu
}
}