Pb de classes

cs_Bouki Messages postés 43 Date d'inscription vendredi 30 août 2002 Statut Membre Dernière intervention 11 décembre 2004 - 14 avril 2004 à 18:07
cs_Bouki Messages postés 43 Date d'inscription vendredi 30 août 2002 Statut Membre Dernière intervention 11 décembre 2004 - 14 avril 2004 à 18:42
g un fichier Element_menu.java

import java.awt.*;
import javax.swing.*;

public class Element_menu
{
private Color Couleur_fond;
private Font Police;
private Color Couleur_ecriture;

public JMenuItem Element_menu(String Nom)
{
JMenuItem Element_menu = new JMenuItem(Nom);

Couleur_fond = new Color(102, 153, 255);
Police = new Font("Tahoma", Font.PLAIN, 11);
Couleur_ecriture = new Color(51, 102, 255);

Element_menu.setBackground(Couleur_fond);
Element_menu.setFont(Police);
Element_menu.setForeground(Couleur_ecriture);

return Element_menu;
}
}

le pb c que quand je fais :
JMenuItem Nouveau = new Element_menu("Nouveau");

à la compilation j'ai :
Menus.java [19:1] cannot resolve symbol
symbol : constructor Element_menu (java.lang.String)
location: class Element_menu
JMenuItem Nouveau = new Element_menu("Nouveau");
^
1 error
Errors compiling Menus.

je comprend vraiment pas :'(

11 réponses

kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
14 avril 2004 à 18:17
Salut,

t'es en train de confondre méthode et constructeur.
Si tu veux avoir ton propre JMenuItem il faut le spécialiser : ta classe Element_Menu doit hériter de JMenuItem.
0
cs_Bouki Messages postés 43 Date d'inscription vendredi 30 août 2002 Statut Membre Dernière intervention 11 décembre 2004
14 avril 2004 à 18:20
je suis pas trop dans les trucs techniques, qu'est-ce qu'il va pas ?
je dois faire extends JMenItem à ma classe ? c'est ce que j'ai fait au debut mais je veux a la fin avoir un JMenuItem
0
JBAware Messages postés 174 Date d'inscription lundi 23 septembre 2002 Statut Membre Dernière intervention 6 avril 2011 1
14 avril 2004 à 18:24
8-) JB@WAre
avant j'ai une question,

au niveau de tes déclarations de variables : voici ton code

public class Element_menu
{
private Color Couleur_fond;
private Font Police;
private Color Couleur_ecriture;

public JMenuItem Element_menu(String Nom)
{

.....

Est-ce vraiment ainsi que tu l'as écrit parce que dans ce cas tu ENFREINDS une des premières règle de Java qui est que les classes doivent commencer par une majuscule et les variables par une minuscule. c'est grace à cela que la jvm les différencie.
sinon dans public Vector Vector, lequel des deux est la classe et l'autre la variable.
0
JBAware Messages postés 174 Date d'inscription lundi 23 septembre 2002 Statut Membre Dernière intervention 6 avril 2011 1
14 avril 2004 à 18:27
8-) JB@WAre

A ouais en plus j'avais pas fais gaffe au constructeur qui retourne un JMenuItem :(
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Bouki Messages postés 43 Date d'inscription vendredi 30 août 2002 Statut Membre Dernière intervention 11 décembre 2004
14 avril 2004 à 18:27
bah je fais toujours comme ca mais c parceque je donne pas le nom anglais de la classe mais francais donc ca me pose pas de pb.

Pour montrer ce que j'ai fait avec extends JMenuItem

import java.awt.*;
import javax.swing.*;

public class Element_menu extends JMenuItem
{
private Color Couleur_fond;
private Font Police;
private Color Couleur_ecriture;

public JMenuItem Element_menu(String Nom)
{
Couleur_fond = new Color(102, 153, 255);
Police = new Font("Tahoma", Font.PLAIN, 11);
Couleur_ecriture = new Color(51, 102, 255);

setBackground(Couleur_fond);
setFont(Police);
setForeground(Couleur_ecriture);

return this;
}
}

et g :

Menus.java [19:1] cannot resolve symbol
symbol : constructor Element_menu (java.lang.String)
location: class Element_menu
JMenuItem Nouveau = new Element_menu("Nouveau");
^
1 error
Errors compiling Menus.
0
cs_Bouki Messages postés 43 Date d'inscription vendredi 30 août 2002 Statut Membre Dernière intervention 11 décembre 2004
14 avril 2004 à 18:29
g oublie de dire que g essaye aussi avec :

return (JMenuItem)this;
au lieu de
return this;

ainsi que

JMenuItem Nouveau = new Element_menu("Nouveau");
et
Element_menu Nouveau = new Element_menu("Nouveau");
0
kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
14 avril 2004 à 18:33
le constructeur n'a pas de type de retour ni JMenutItem ni void ni rien.
Ton code corrigé. Au passage j'ai modifié le nom des variables pour que ce soit conforme avec la convention de nommage
public class ElementMenu extends JMenuItem
{
private Color couleurFond;
private Font police;
private Color couleurEcriture;

public ElementMenu(String nom)
{
couleurFond = new Color(102, 153, 255);
police = new Font("Tahoma", Font.PLAIN, 11);
couleurEcriture = new Color(51, 102, 255);

setBackground(couleurFond);
setFont(police);
setForeground(couleurEcriture);
}
}
0
JBAware Messages postés 174 Date d'inscription lundi 23 septembre 2002 Statut Membre Dernière intervention 6 avril 2011 1
14 avril 2004 à 18:35
8-) JB@WAre
change quand même ca fera plus propre et plus protocolaire et ton constructeur doit être :

public Element_menu(String Nom)
{
Couleur_fond = new Color(102, 153, 255);
Police = new Font("Tahoma", Font.PLAIN, 11);
Couleur_ecriture = new Color(51, 102, 255);

setBackground(Couleur_fond);
setFont(Police);
setForeground(Couleur_ecriture);

}

un constructeur ne retourne rien puisqu'il instancie ta variable
donc dans ton code cela donne bien

JMenuItem nouveau = new Element_menu("Nouveau");
0
JBAware Messages postés 174 Date d'inscription lundi 23 septembre 2002 Statut Membre Dernière intervention 6 avril 2011 1
14 avril 2004 à 18:37
8-) JB@WAre

comme quoi c'est forcément ca on est deux à te donner la m^me solution en même temps
0
cs_Bouki Messages postés 43 Date d'inscription vendredi 30 août 2002 Statut Membre Dernière intervention 11 décembre 2004
14 avril 2004 à 18:39
ouais ca marche parfait, au début j'avais fait
public Element_menu(String Nom)
mais il m'avait dit que je devais mettre quel type il retourne à cause de mon return de fin mais maintenant c bon g compris
merci bcp à vous deux :D
0
cs_Bouki Messages postés 43 Date d'inscription vendredi 30 août 2002 Statut Membre Dernière intervention 11 décembre 2004
14 avril 2004 à 18:42
par contre mon menu est minus et se voit pas du tout
mais ca c un autre pb.
0
Rejoignez-nous