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

Composants Java Discussion :

[Swing]probleme pour changer de JPanel


Sujet :

Composants Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 89
    Points : 51
    Points
    51
    Par défaut [Swing]probleme pour changer de JPanel
    Re c est encore moi. Ca fait deux fois dans la journée.
    Mon probleme est le suivant:
    J ai deux classes; l une extend de Jframe et l autre de Jpanel. J ai un listener sur le Jpanel grace a un this.panel.requestFocusInWindow(); que j ai mis dans ma Jframe.
    Le truc c ke j aimerai ke le panel change kan j appuie sur la touche espace. J ai fait une instance static de ma jframe pour setter l instance du jpanel. Mais voila l affichage ne change pas. Je c ke mon panel a change car apres ce changement je lance une musique qui regarde kel est le panel et ki lance la musique en fonction de ce panel mais voila pas d affichage et les listener qui vont avec.
    Merci de m aider une fois de plus.
    [ Modéré par vedaer ]
    Ajout d'un tag dans le titre
    Les Règles du Forum

  2. #2
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    bonsoir,
    après avoir changé ton panel, appelle la méthode tonPanel.revalidate() pour prendre en compte les changements.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 89
    Points : 51
    Points
    51
    Par défaut
    Peut etre que ca vient de moi mais ca ne fonctionne pas.
    Voila le code o cas ou:
    La JFrame :
    G un attribut static representant la classe a partir de laquelle j appele cette methode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public void setPanel(DaZelPanel panel) {
            this.panel = panel;
            this.panel.revalidate();
            //this.DaZelMusic();
        }
    Dans le JPanel voici la methode qui doit me faire changer de JPanel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    case KeyEvent.VK_SPACE:
                DaZelGUI.getFrame().setPanel(new DaZelGame());
            break;
    Comme je l ai dit je dois bien changer de JPanel car la musique change si j enleve le commentaire.

  4. #4
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    je pensais que c'était le contenu de ton panel qui changeait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public void setPanel(DaZelPanel panel) { 
    this.panel = panel; 
    this.revalidate(); 
    }
    Par contre, je ne vois pas en quoi la méthode setPanel() va mettre à jour la JFrame, il n'y a pas d'appel à la méthode add().
    Sinon, pour ce type d'agencement en panels superposés, il existe le layout CardLayout.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 89
    Points : 51
    Points
    51
    Par défaut
    Je ne voies pas exactement ce que tu veux dire mais je me repete:
    Mon JPanel change. Comment je dois faire pour qu'il apparaisse car il n apparait pas

  6. #6
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    nouvel essai ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public void setPanel(DaZelPanel panel) {
      if (panel != this.panel) {
        remove(this.panel);
        this.panel = panel;
        add(this.panel);
        this.revalidate(); 
      }
    }

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 89
    Points : 51
    Points
    51
    Par défaut
    mc ca fonctionne.

  8. #8
    Membre éprouvé
    Avatar de c-top
    Profil pro
    Turu
    Inscrit en
    Septembre 2003
    Messages
    972
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Turu

    Informations forums :
    Inscription : Septembre 2003
    Messages : 972
    Points : 1 246
    Points
    1 246
    Par défaut
    Ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    panel1.setVisible(false);
    panel2.setVisible(true);

  9. #9
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    Tout dépend du layout utilisé ..
    Avec un border layout, tu ne peux pas avoir deux composants au même endroit par exemple.

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

Discussions similaires

  1. Probleme pour changer la couleur de mon widget.
    Par Flow_75 dans le forum GTK+ avec C & C++
    Réponses: 0
    Dernier message: 18/09/2009, 21h01
  2. Probleme pour changer le curseur d'un bouton
    Par jderam dans le forum MFC
    Réponses: 1
    Dernier message: 10/06/2009, 13h07
  3. probleme pour rendre un JPanel disable
    Par L4BiN dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 06/06/2007, 11h14
  4. [Layout] Probleme pour ajuster un JPanel particulier
    Par jlassiramzy dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 11/01/2007, 18h24
  5. [Hardware] Probleme pour changer de carte mere
    Par tiboooo dans le forum Composants
    Réponses: 17
    Dernier message: 23/02/2006, 23h02

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