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 :

Modifier un JPanel


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 168
    Par défaut Modifier un JPanel
    Bonjour,

    J'ai debuté le Java depuis quelques jours et je me retrouve confronté à un problème.

    Dans une JFrame j'ai inséré un JPanel au centre de ma fenetre grâce à un BorderLayout.CENTER. Ce JPanel correspond à l'une de mes classes 'Module_inscription.java'.

    Comme son nom l'indique cette classe permet à un utilisateur de s'inscrire grâce à des JTextField et un JButton. Une fois que l'utilisateur clique sur le bouton ces données sont insérer dans la BDD, un pop-up l'averti que tout c'est bien passé.

    Une fois ceci réalisé je voudrais que ce JPanel soit remplacé par un autre. J'ai trouvé les méthodes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    jframe.getContentPane().remove(jPanel1);
    jframe.getContentPane().add(jPanel2);
    Cependant je ne me trouve pas dans la classe JFrame mais dans un JPanel je ne peut dont pas les utiliser.

    Existe-t'il d'autre méthode ou un moyen de récuperer mon objet JFrame?

    En espérant une réponse de votre part,
    Bonne journée!

  2. #2
    Membre expérimenté Avatar de Mamypirate
    Homme Profil pro
    Samouraï
    Inscrit en
    Mai 2011
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Samouraï
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2011
    Messages : 108
    Par défaut
    Tu dois pouvoir utiliser un getParent() sur ton JPanel.

  3. #3
    Membre chevronné

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2010
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2010
    Messages : 246
    Par défaut
    je dirais plutôt de passer ta frame en question en paramètre du constructeur de la classe ou tu te trouve. Comme cela, pas de souci, tu auras accès à toutes ses méthodes.

  4. #4
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 168
    Par défaut
    Merci MamyPirate t'as méthode, couplée avec les 2 lignes que j'ai mis dans mon premier post m'a permit de résoudre mon problème.

    Michou je n'ai pas bien compris ta solution. Si tu pouvais me donner plus de détails, celle-ci pourait éventuellement être plus simple..

    Merci encore en tout cas pour vops réponses!

  5. #5
    Membre chevronné

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2010
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2010
    Messages : 246
    Par défaut
    Et bien, ce que j'ai voulu dire...

    imaginons que nous somme dans la classe correspondant à ta JFrame.
    Un moment tu dois surement avoir...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    class MyJFrame extends JFrame{
     
        public MyJFrame(){
            super();
            //.... 
        }
     
        public void OneMethodWhichCreateAJPanel{
            //...
            MyJPanel MyPanel = new MyJPanel(this);
            //...
        }
    }
    Dans ce qui précède, "this" représente ta JFrame car nous somme dans la classe qui hérite de JFrame. Si tu construit ton JPanel depuis une autre classe, il suffira que cette autre classe ait recu la JFrame en paramètre comme ce qu'on vient de faire.

    Voila à quoi ressemblerai la classe MyJPanel :

    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
     
    class MyJpanel extends JPanel{
     
        private JFrame frame;
     
        public MyJPanel(JFrame frame){
            super();
            //ici on mémorise la réference de ta frame dans un variable
            this.frame = frame;
        }
     
        public void OneMethodWhichNeedToUseTheFrame(){
            //...
            //maintenant tu peux utiliser ta JFrame tranquilement depuis le panel.
            frame.setTitle("Mon titre est donné depuis le JPanel");
        }
    }

    Et donc il te suffit simplent d'instancier des "MyJPanel" au lieu des "JPanel" standard. Sachant que un MyJPanel est aussi un JPanel, donc tout ce que tu faisais avec tes JPanel continuera de fonctionner normalement.

    J'espère ne pas avoir fais d'erreur et avoir été assez clair.

  6. #6
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 168
    Par défaut
    Oui c'était très clair. Merci.

    Cela ne change pas grand chose pour le moment l'autre méthode marchant très bien. Mais on ne sais jamais je prend donc bonne note de celle-ci.

    Merci de ton aide.
    Bonne fin de journée

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

Discussions similaires

  1. Modifier la taille de deux JPanel
    Par Von_Kavalier dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 15/06/2015, 03h49
  2. modifier la taille de jpanels
    Par Kobe70 dans le forum Agents de placement/Fenêtres
    Réponses: 8
    Dernier message: 22/07/2008, 14h45
  3. modifier la taille d'un JPanel
    Par Asmod_D dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 04/04/2007, 15h12
  4. [JPanel][JTable] Modifier le Layout
    Par warwink dans le forum Composants
    Réponses: 6
    Dernier message: 11/07/2006, 10h11
  5. [jpanel] Modifier la taille...
    Par scorpiwolf dans le forum Agents de placement/Fenêtres
    Réponses: 7
    Dernier message: 01/07/2004, 17h11

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