IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Java Discussion :

Problème héritage JFrame --> implements


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 56
    Par défaut Problème héritage JFrame --> implements
    Bonjour,

    J'ai une classe qui hérite de JFrame. Seulement je viens de réaliser que cette classe doit aussi hériter de la classe 'UnicastRemoteObject' dans le cadre de développement sur les rmi.
    Je ne suis pas une flèche en programmation mais je me dis que pour des cas pareil, il doit y avoir des interfaces qui permettent de se substituer à l'héritage ?
    Une interface pour JFrame ou pour UnicastRemoteObject ? J'ai cherché sur Google mais je ne sais pas quels mots clefs utiliser pour trouver ce que je cherche...

    Merci de votre aide.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Es-tu obligé de dériver ta classe de JFrame ?
    Je veux par là, ta sous-classe rajoute-t-elle des comportements à la JFrame de base.
    Si ce n'est pas le cas, utilise plutôt la composition que l'héritage.

  3. #3
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Euh, comment dire. Normalement les objets graphiques ne sont pas prévus pour transiter par un réseau.
    Tu as un problème de modélisation là. Les objets transitant via le réseau sont uniquement les objets contenant les données. Tu n'as rien à gagner à faire transiter un JFrame par RMI, juste de la bande passante à perdre.

    Ou alors tu as une raison bien spécifique et il faut nous l'exposer.

  4. #4
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 56
    Par défaut
    Non je ne fais pas transiter d'objets graphiques (du moins je ne crois pas). La frame est juste là pour afficher (côté serveur) les échanges entre clients via le serveur (comme par exemple, tel IP communique avec telle autre. Le serveur ici a plus le rôle de routeur que de centraliseur). Plutôt qu'une interface console c'est une IHM jframe.
    Il n'y a que les méthodes définies dans l'interface côté serveur qui seront appelées par les clients. La classe JFrame est juste là pour faire joli mais ne transite pas sur le réseau.

    Je vais voir pour la composition, mais ça ne me plaît pas trop...
    En discutant avec des amis on m'a confirmé qu'il y avait bien des interfaces qui permettaient de se substituer à l'héritage pour des cas comme les miens. Mais je n'ai pas trouvé sur le net

  5. #5
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 56
    Par défaut
    Je reviens sur la composition.
    J'ai l'impression que tu me conseilles la composition parce que tu crois qu'une de mes classes joue le rôle de JFrame de base ?
    Ou alors je ne savais pas que la composition était à préférer à l'héritage si la classe fille n'ajoute pas de comportements propres à la classe mère.

    Donc dans le 2ème cas, il faut que je crée une JFrame dans ma classe ?
    JFrame frame = new JFrame(); ?
    Et ensuite j'utilise cette frame normalement ?

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Disons que souvent, dans les tutos Swing, pour créer une application, on crée une classe qui hérite de JFrame, même si cette classe n'apporte rien de plus.

    Donc je préfère:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public class MonApplication
    {
      private JFrame maFrame = new JFrame();
    }
    à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public class MonApplication extends JFrame
    {
    }

  7. #7
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 56
    Par défaut
    Ben écoute merci pour le conseil. Je vais le mettre en application. De toute manière je suis loin de concevoir comment, dans une classe, on peut apporter des comportements à une classe mère... dans mon cas JFrame.
    Je suis curieux donc si tu as un exemple à me citer ? En gros en héritant on peut développer des méthodes qui ajouteront des fonctionnalités à la classe mère ?

Discussions similaires

  1. [POO] Problème héritage des classes PHP4
    Par zana74 dans le forum Langage
    Réponses: 2
    Dernier message: 15/08/2006, 16h00
  2. Problème Héritage JavaScript
    Par Flavien dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/07/2006, 13h29
  3. Problème héritage CWnd
    Par ptitJP dans le forum MFC
    Réponses: 4
    Dernier message: 21/04/2006, 11h41
  4. problème avec la directive implements
    Par Bruno75 dans le forum Langage
    Réponses: 2
    Dernier message: 14/10/2005, 09h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo