Problème héritage entre 2 classes

Problème héritage entre 2 classes - Java - Programmation

Marsh Posté le 25-11-2006 à 22:48:51    

Bonjour,
 
Je suis débutante en Java + et j'essaie d'utiliser des objets créés dans une classe, dans une autre classe.
Je pensais pouvoir y arriver sans problèmes mais en fait, je ne dois pas bien m'y prendre.
 
Voila mon code pour la première classe limitsProjet:
 
 
import java.awt.*;
import javax.swing.*;
 
public class limitsProjet extends JFrame
{
 // Panel
 JPanel panel1 = new JPanel();
 JPanel panFlow = new JPanel();
 
 
    // Barre menu
 
 JMenuBar mbar = new JMenuBar();
 JMenu menu1 = new JMenu("Fichier" );
 JMenu menu2 = new JMenu("Info" );
 JMenuItem item1 = new JMenuItem("Fermer" );
 JMenuItem item2 = new JMenuItem("Ajouter texte" );
 JMenuItem item3 = new JMenuItem("Effacer texte" );
 
}

 
Logiquement si la deuxième classe doit hériter de la première, je devrait utiliser un code de type:
 

public class ProjetJavaC extends limitsProjet
{
    mon code
   
   public static void main (String[] arg)  
    {
        ProjetJavaC p = new ProjetJavaC ();
     }
 
 }

En fait dans la partie mon code, si j'essaie d'utiliser un objet de l'autre classe en écrivant:
menu1.add(item1);
 
Il ne reconnait pas les variables menu1 et item1.
 
J'ai également essayé en créant un objet de ma classe 1 de type:  
 
private limitsProjet lp; //déclaration de l'objet
 
puis
 
limitsProjet lp = new limitsProjet(); // donne une valeur à l'objet
 
Rien n'y fait...j'ai pourtant passé des heures sur le net et dans mon bouquin pour savoir comment faire marcher ça, mais sans succès... Quelqu'un aurait-il une idée de ce qui ne va pas?
 
En tout cas, je me suis promenée dans le forum et pour une passionée d'informatique, je le trouve vraiment sympa  :sol:  
 
 
 
 
 

Reply

Marsh Posté le 25-11-2006 à 22:48:51   

Reply

Marsh Posté le 26-11-2006 à 00:28:36    

C'est un problèmes de visibilité de variable. Tes deux classes sont bien dans le meme package ? Tu n'essaye pas d'acceder à tes fields depuis un bloc de code static ?
 
En regle générale, lis bien les messages d'erreurs de compilations et tu arrivera rapidement à resoudre seule le problème.

Reply

Marsh Posté le 26-11-2006 à 11:13:52    

J'ai essayé de créer un même package (j'ai jeté un oeil au tuto) et de mettre mes 2 classes dedans.  
 
Quand j'essaie de compiler le deuxième en utilisant import projet.*; il me dit que ce package n'existe pas...  
 
Merci pour ta réponse en tout cas.
 

Reply

Marsh Posté le 26-11-2006 à 11:17:31    

Moi ce que je pige pas, c'est pourquoi ProjetJavaC hérite de limitsProjet qui est une JFrame, ça n'a carrément rien à voir, suffit de créer un limitsProjet, l'héritage n'étant pas justifié

Reply

Marsh Posté le 26-11-2006 à 15:00:24    

FlorentG >> Moi aussi je ne trouve pas ça logique, car mon programme fonction très bien sans ça. C'est mon prof qui exige 2 classes qui hérite l'une de l'autre :(

Reply

Marsh Posté le 26-11-2006 à 15:00:49    

désolée pour les fautes :p

Reply

Marsh Posté le 26-11-2006 à 15:01:37    

Ben là l'héritage ne se justifie absolument pas, si ton prof exige de l'héritage, ça doit être ailleurs surement...

Reply

Marsh Posté le 26-11-2006 à 17:21:25    

En fait il veut que l'on crée une interface et que l'autre classe hérite de l'interface. Je travaille dessus en ce moment.

Reply

Marsh Posté le 26-11-2006 à 18:03:55    

[:pingouino] j'ai soudainement peur de comprendre
 
 
 
interface au sens Java ou au sens interface graphique ?

Reply

Marsh Posté le 26-11-2006 à 18:34:20    

au sens graphique je pense...
 
Pour être plus claire, je dois définir les objets Panel et de la barre de menu séparement dans une interface.  
 
Après relecture du chapitre correspondant dans mon livre, il faut certainement que je remplace public class limitsProjet par public interface limitsProjet... et que j'essaie de faire marcher ça dans ma classe qui contiendra la méthode main.

Reply

Marsh Posté le 26-11-2006 à 18:34:20   

Reply

Marsh Posté le 26-11-2006 à 20:06:11    

C'est bon, c'est résolu!  
 
J'avais confondu class et interface... :p  
 
J'ai déclaré mes objets en public static dans une interface nommée limitsProjet et ensuite j'ai utilisé implements limitsProjet :) :)
 
C'est grâce à vos commentaires que j'ai pu me rendre compte de mon erreur. MERCI :D :D

Reply

Marsh Posté le 27-11-2006 à 09:10:53    

Ouais enfin si tu pourrais nous montrer le résultat final, parce que je le sens pas là

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed