Variable public JAVA

Fermé
Martin - Modifié par Martin le 5/11/2011 à 10:30
 Martin - 5 nov. 2011 à 14:42
Bonjour,

J'aimerai une petite aide en ce qui concerne un projet que je dois faire en JAVA.
Je suis sous Eclipse., j'expose mon pb :

Dans le package screen, une variable est déclarée dans une classe que nous appellerons Main (pour info, je ne peux pas toucher à cette classe pour des raisons de compatibilité), cette variable est de la forme :

public static JButton bt

Et maintenant, dans un second package appelé client, j'aimerai utiliser cette variable dans une autre classe Button héritant de la classe Main. Mais lorsque je tape le nom de cette variable, elle n'est pas reconnu et j'ai droit au message d'erreur suivant :

The field Main.bt is not visible

Pourtant je croyais que le fait d'indiquer public la rendant visible.

Bref, j'ai pas encore tout compris à JAVA apparement, donc j'espère que quelqu'un pourra m'aider.

Merci d'avance

Martin
A voir également:

5 réponses

KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
5 nov. 2011 à 12:05
Ta variable est static, elle appartient uniquement à la classe Main, et ne peux pas être hérité. Cependant elle est visible par tous (héritage ou non) en utilisant Main.bt
0
Merci
Dans ce cas, sans ma classe Button, je devrais pouvoir l'utiliser en indiquant juste Mains.bt si j'ai bien compris.
Mais justement, ce n'est pas le cas...
0
KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
5 nov. 2011 à 13:35
Parfois tu dis Main, parfois tu dis Mains, vérifie que ton orthographe est la bonne.
De plus n'oublies pas de faire un import screen.Main (ou import screen.Mains selon)
0
Merci
C'est bien de Main qu'il s'agit, et de toute façon le Main.bt est détecté, c'est juste qu'il m'indique qu'il n'est pas visible...
Et j'ai bien fait l'import également
Bref, je sèche là^^
0
Je crois avoir à peu près compris d'où vient mon problème,
j'ai 2 projets dans Eclipse
- le premier s'appelle Server et contient le package screen avec la classe Main qui possède la variable bt
- le second s'appelle Client, contient le package avec une classe Button qui hérite de Main... je veux utiliser la variable bt dans cette classe.

Comment dois-je faire si j'ai 2 projets différents ?
0
KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
5 nov. 2011 à 14:00
Tu dois exporter ton projet Server dans une archive .jar et importer celle-ci dans ton projet Client.
Sans oublier de modifier le .jar à chaque fois que tu modifies ton projet Server...
0
KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
5 nov. 2011 à 14:06
Pour ton projet "Server" : File > Export > JAR File
Et dans ton projet "Client" : Project > Properties > Java Build Path > Add External JARs
0
Merci beaucoup pour ton aide, mais ça ne marche pas plus. J'avais déjà fait ce que tu viens de me dire avant
0
KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
5 nov. 2011 à 14:28
Est-ce que ta classe Main est public ?
0
KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
Modifié par KX le 5/11/2011 à 14:37
Projet "Server", fichier Main.java :

package screen; 

import javax.swing.JButton; 

public class Main  
{ 
    public static JButton bt = new JButton(); 
}

Projet "Client", fichier Button.java :

package client; 

import screen.Main; 
import javax.swing.JButton; 

public class Button
{
    public static Jbutton bt2 = Main.bt;
}
La confiance n'exclut pas le contrôle
0

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

Posez votre question
Je sais ce qui ne va pas, c'est un peu plus compliqué que ça. Mais en gros, le fichier Main que j'utilise, c'est seulement pour voir les méthodes. Parce qu'il y a un second fichier Main.class fourni par le prof donc pas modifiable qui ne contient pas les même valeurs que celui que j'utilise (il a fallu que je le décompile pour voir ça)... en gros : mauvaise blague du prof ><

Merci pour ton aide, maintenant, je vais directement voir avec le prof en lui envoyant un mail^^
0