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

AWT/Swing Java Discussion :

probleme pour récupérer dimension de JPanel


Sujet :

AWT/Swing Java

  1. #1
    Membre actif Avatar de L4BiN
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2006
    Messages : 432
    Points : 209
    Points
    209
    Par défaut probleme pour récupérer dimension de JPanel
    bonjour,

    voici mon probleme:

    je n'arrive pas a récupérer les dimensions de JPanel dans une class, pour que à chaque fois que la dimension du panel est changé (par exemple en modifiant la taille de la fenetre avec la souris) on redimensionne le composant contenu dans ce JPanel.

    voici une ébauche 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
    public class MaClass extends JPanel
    {
            private MonComposant monComposant;
    
           public MaClass()
          {
                super();
                this.add(getMonComposant());
          }
    
           public monComposant getMonComposant()
          {
                 if(monComposant == null)
                 {
                       monComposant = new MonComposant();
                       monComposant.setSize(ici je ne sais pas quoi mettre);
                 }
                 return monComposant;
          }
    }

  2. #2
    Membre éprouvé
    Avatar de n!co
    Profil pro
    Inscrit en
    Février 2004
    Messages
    831
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 831
    Points : 936
    Points
    936

  3. #3
    Membre actif Avatar de L4BiN
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2006
    Messages : 432
    Points : 209
    Points
    209
    Par défaut
    ca ne marche pas, il renvoie des dimension bcp trop petite ==> Dimension(10,10)

  4. #4
    Membre actif Avatar de L4BiN
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2006
    Messages : 432
    Points : 209
    Points
    209
    Par défaut
    personne ne sait comment faire pour récupérer la dimension d'un JPanel dynamique (cad que les dimensions du JPanel change quand on redimensionne la fenete avec la souris).

    J'ai essayé:

    getPreferedSize() mais ca ne retourne la dimension Dimension(10,10) ce qui n'a rien avoir avec la taille de mon JPanel.

    getSize() retourne 0
    getWidht retourne 0

    etc... retourne 0

    merci d'avance

  5. #5
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Citation Envoyé par L4BiN
    personne ne sait comment faire pour récupérer la dimension d'un JPanel dynamique (cad que les dimensions du JPanel change quand on redimensionne la fenete avec la souris).
    Il faut utiliser un ComponentListener (méthode componentResized()).

  6. #6
    Membre averti

    Profil pro
    Coach Agile
    Inscrit en
    Décembre 2005
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Coach Agile

    Informations forums :
    Inscription : Décembre 2005
    Messages : 316
    Points : 371
    Points
    371
    Par défaut
    via ton layout, tu as essayé quelque chose de ce type ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    layout.minimumLayoutSize(this /* ton panel*/)

  7. #7
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par L4BiN
    je n'arrive pas a récupérer les dimensions de JPanel dans une class, pour que à chaque fois que la dimension du panel est changé (par exemple en modifiant la taille de la fenetre avec la souris) on redimensionne le composant contenu dans ce JPanel.
    La taille des composants est nulle par défaut (0,0), et est modifié par le LayoutManager lorsque le composant parent est affiché. Donc tant que le parent n'est pas affiché tu ne pourras pas obtenir cette information.

    Ici tu ajoutes ton composant dans un JPanel avec un FlowLayout (le layout par défaut des JPanel) donc ton composant sera dimensionné selon sa taille préféré...


    Maintenant j'ai quelques questions :
    • Quel doit être la taille de ce composant "MonComposant" à l'intérieur du JPanel ? Tu dois surement pouvoir obtenir ce que tu veux en utilisant un autre Layout...
    • Le JPanel est là seulement pour contenir ton composant ? Pourquoi ne pas placer directement ton composant dans la fenêtre ?



    Bref détaille un peu plus ce que tu veux obtenir (et pas comment tu penses le faire)

    a++

  8. #8
    Membre actif Avatar de L4BiN
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2006
    Messages : 432
    Points : 209
    Points
    209
    Par défaut
    le probleme était que le composant que j'utilisai ne supportait pas les BorderLayout, (un composant construit par mon entreprise).

    cela a compliqué la tache du fait que je devai alors moi meme aller récupérer les dimensions du JPanel contenant le MonComposant.

    Mais comme le JPanel était dynamique, je n'arrivait pas a récupérer la taille.
    parceque en fait j'avais fait appel a getPreferredSize() avant d'avoir placer le panel, d'ou le fait que je récupérai Dimension(10,10) (pourquoi 10 10 je ne sais pas du tout).

    Apres coup j'ai compris cela et g bien placé le getPreferredSize.

    Ensuite g enfin utilisé comme conseillé plus haut le addComponentListener, avec la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    componentResized(ComponentEvent e)
    et maintenant ca marche merci bcp

  9. #9
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par L4BiN
    le probleme était que le composant que j'utilisai ne supportait pas les BorderLayout, (un composant construit par mon entreprise).
    Comment ils ont fait pour faire un composant qui ne supportait par le layout ???


    Parce que ce que tu fait là (listener sur la taille pour dimensionner le composant), c'est justement le rôle du layout...


    a++

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

Discussions similaires

  1. calcul DateAdd .. probleme pour récupérer le résulat de ce calcul
    Par Doberman121 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 22/08/2008, 17h02
  2. Probleme pour récupérer le handle d'une image dans un subplot
    Par ptit-nico dans le forum Interfaces Graphiques
    Réponses: 5
    Dernier message: 04/07/2008, 13h46
  3. probleme pour récupérer une valeur
    Par kluck3000 dans le forum Langage
    Réponses: 2
    Dernier message: 02/04/2008, 17h02
  4. probleme pour récupérer mon JavaCompiler
    Par Kuroro dans le forum Langage
    Réponses: 1
    Dernier message: 19/05/2007, 19h37
  5. probleme pour dessiner dans un JPanel
    Par L4BiN dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 02/08/2006, 16h01

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