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

Interfaces Graphiques en Java Discussion :

Appel de fonction depuis une classe fille


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 125
    Points : 56
    Points
    56
    Par défaut Appel de fonction depuis une classe fille
    Bonjour a tous,

    Je viens de coder un soft java avec interface graphique. Au lancement de mon appli, deux fenetres apparaissent a l'écran. Une premiere en avant plan servant a se logger, et la fenetre principale en second plan.

    La fenetre principale est completement inhibée (tous les champs "textfield" sont mis disabled) afin qu'on soit obligé de se logger avant de pouvoir utiliser le logiciel.

    Je souhaiterais que lors de l'appui sur le bouton "OK" de la fenetre de log, la fenetre principale puisse redevenir normale (champs remis a enabled).

    Cependant, c'est la Frame principale qui appelle la frame de log par un "new". Cela implique que la fenetre de log est "fille" de la fenetre principale. Je sais bien comment appeler une fonction de la classe fille depuis la classe mere. Mais comment faire l'inverse ? Depuis la classe fille appeler une fonction affectant la classe mere (en l'occurance, rendre enable tous les textField de la fenetre principale).

    Merci de vos conseils...

  2. #2
    Invité
    Invité(e)
    Par défaut
    this.getParent() ?

  3. #3
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 125
    Points : 56
    Points
    56
    Par défaut
    cela correspondrait il au "super" ?

    Dans le cas du this.getParent(), si je veux appeler une fonction de la classe mere, je dois faire un "this.getParent().fonction();" ?

    Car ma fonction qui permet de rendre tous les champs enabled n'est pas de type static.

    De plus, si je fais un " System.out.println(this.getParent()); " cela me rend "null"...

    Peux tu expliciter ta solution stp ?

    Merci.

  4. #4
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Personnelement, je ferais ca autrement...

    Comme tu ouvre depuis ta classe "mère" ta classe fille, tu peut lui ajouter un WindowListener, et quand la fille est fermée, tu peut réactiver tes composants. C'est comme ca que je fais, quand j'ai des problèmes de ce genre, et ca marche bien

  5. #5
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 125
    Points : 56
    Points
    56
    Par défaut
    Ah oui, effectivement, c'est ca qu'il faut que j'utilise. J'ai un peu regardé sur internet et je vois que c'est ma solution. Cependant je ne vois pas trop comment l'implémenter.

    Serait il possible que tu me donnes un petit coup de main dans ce que je dois déclarer pour "surveiller" l'appui sur le bouton "OK" de ma fenetre fille depuis ma fenetre mere ?

    Qu'est ce que je dois rajouter du coté mere / fille pour que cela fonctionne ?

    example simplifié de mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    public class mere extends javax.swing.JFrame {
    / ...
         construction de la frame
     
     .../ 
     
       fille log = new fille();
     
    }
     
    public class fille extends javax.swing.JFrame {
    / ...
        construction de la frame
     
    .../ 
     
       AppuiSurOk()
        {
        }
     
    }

  6. #6
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 141
    Points : 128
    Points
    128
    Par défaut
    Pourquoi tu n'utilise pas un JDialog modal pour ta frame fille ? Tu peux mettre n'importe quel composant dedans, une JFrame dans ton cas et c' est fait pour cela ...

  7. #7
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    moi j'aurai tout simplement passé une référence sur this (classe principale) lors de la création de la nouvelle fenetre... C'est simpliste mais ca marche bien ^^
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  8. #8
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Citation Envoyé par e1lauren
    Pourquoi tu n'utilise pas un JDialog modal pour ta frame fille ? Tu peux mettre n'importe quel composant dedans, une JFrame dans ton cas et c' est fait pour cela ...
    Clair moi aussi j'utiliserai une JDialog modale pour la fenêtre de connexion. Qui dit modale dit qu'elle bloquera ton autre fenêtre tant qu'elle ne sera pas fermée.

    Pour la déclarer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    JDialog connectionDialog = new JDialog(taJFrameParente, true) ;
    //déclare une JDialog modale
    Après tu rajoute les composants dedans comme tu le ferais pour une JFrame.

    -"Tout ça me paraît très mal organisé. Je veux déposer une réclamation. Je paye mes impôts, après tout!"
    -"JE SUIS LA MORT, PAS LES IMPÔTS! MOI, JE N'ARRIVE QU'UNE FOIS".

    Pieds d'argile (1996), Terry Pratchett 1948 - 2015
    (trad. Patrick Couton)

  9. #9
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 125
    Points : 56
    Points
    56
    Par défaut
    Merci beaucoup Descent pour ta solution. Ca marche vraiment bien !!!!

    J'ai créé une classe "public class LogDialogue extends javax.swing.JDialog" qui me fait mon log.

    Depuis ma classe mere, j'appelle simplement "LogDialogue LogDialogue = new LogDialogue((Frame)this, true) ;" et ca roule tout seul !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 15/02/2007, 11h02
  2. [downcasting] fonction d'une classe fille
    Par poukill dans le forum C++
    Réponses: 7
    Dernier message: 28/07/2006, 16h26
  3. Appel de fonction dans une classe
    Par saint-pere dans le forum Langage
    Réponses: 3
    Dernier message: 08/05/2006, 22h13
  4. Appel de fonction dans une classe
    Par Seth77 dans le forum Langage
    Réponses: 8
    Dernier message: 16/01/2006, 10h32
  5. [debutant]appeller une fonction d'une classe fille et mere ?
    Par Battosaiii dans le forum Débuter
    Réponses: 1
    Dernier message: 12/11/2005, 12h56

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