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

Agents de placement/Fenêtres Java Discussion :

Pb de taille dans deux JPanel d'un même JFrame


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 55
    Par défaut Pb de taille dans deux JPanel d'un même JFrame
    Bonjour,

    Dans un programme que je développe actuellement (je n'ai pas l'habitude de faire du graphique du tout), j'ai deux JPanel dans un JFrame.

    Mon problème est que je dois connaitre la taille du premier panel pour pouvoir dessiner dedans (n'importe quoi) et dans le second il y a juste quelques boutons.

    Comment puis-je faire, une fois que j'ai créé les deux panels, pour connaitre la taille de mon premier car j'ai des rectangles dedans, que je dois positionner...

    De plus, elle doit se redessiner car j'ai autorisé le redimensionnement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    JDessinPiece piece = new JDessinPiece(x, y);
    panel2.add(piece);
    x et y représentent la taille du premier panel (ceux que je ne connais pas).

    Est-ce qu'il faut que j'affiche le dessin après la création de la JFrame, c'est à dire après l'affichage de la fenêtre, où bien pendant la création des panels qui sont ensuite introduits dans la JFrame ?

    Je ne sais pas comment retrouver les informations de ma "piece".

    J'utilise le Flowlayout.

    bien, je vais expliquer un peu plus

    j'ai 3 classes
    une pour mon JFrame
    une pour mes différents JPanel
    une pour les dessins

    je créé tout d'abords ma JFrame ensuite je met mes différents JPanel (mais dans un des panels j'ai un rectangle à dessiner mais il ne fait pas entièrement la taille du panel) et ensuite je retourne dans ma JFrame..

    comment connaitre la taille de mon rectangle dans le JPanel sachant que j'utilise le Flow Layout et que donc je ne connais pas la taille de mes panels...


    Merci d'avance pour votre aide.

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2010
    Messages : 26
    Par défaut
    pas sur d'avoir tout compris.
    Mais pour connaitre la taille d'un JPanel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    JPanel panel = new JPanel();
    Dimension dim = panel.getSize();
    Je sais pas si ça répond à ta question.
    Dans tout les cas bon courage.

  3. #3
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Par défaut
    Citation Envoyé par harmonips Voir le message
    Bonjour,
    Bonjour.

    Citation Envoyé par harmonips Voir le message
    Mon problème est que je dois connaitre la taille du premier panel pour pouvoir dessiner dedans (n'importe quoi) et dans le second il y a juste quelques boutons.
    Pour la taille, tu peux faire comme l'a mentionné teroux puis ajouter les 2 dernières lignes en rouge pour plus de clarté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    JPanel p = new JPanel();
    Dimension d = p.getSize();
    int hauteur = d.height;
    int largeur = d.width;
    Citation Envoyé par harmonips Voir le message
    Comment puis-je faire, une fois que j'ai créé les deux panels, pour connaitre la taille de mon premier car j'ai des rectangles dedans, que je dois positionner...
    -> cf précédemment.

    Citation Envoyé par harmonips Voir le message
    x et y représentent la taille du premier panel (ceux que je ne connais pas).
    x = largeur
    y = hauteur

    Citation Envoyé par harmonips Voir le message
    Est-ce qu'il faut que j'affiche le dessin après la création de la JFrame, c'est à dire après l'affichage de la fenêtre, où bien pendant la création des panels qui sont ensuite introduits dans la JFrame ?
    Une chose est sûre, tu ne peux pas dessiner, si ta JFrame n'est pas d'abord créé comme tu ne peux pas dessiner (à la main) si tu n'as pas de feuille de papier (le support).
    Donc crée ta JFrame et ensuite dessine sur une zone dessinable (JPanel)...

    Citation Envoyé par harmonips Voir le message
    Je ne sais pas comment retrouver les informations de ma "piece".
    Quelles informations veux-tu retrouver dans ta "pièce" ?? x?? y??
    Tu peux mettre des accesseurs (getX(), getY()) dans ton objet "piece" afin d'y acceder depuis un autre objet.

    Citation Envoyé par harmonips Voir le message
    J'utilise le Flowlayout.
    Avec ce gestionnaire là, les composants sont mis les uns à la suite des autres. "A la queue leu leu"...
    Excellent TUTO à voir

    Citation Envoyé par harmonips Voir le message
    comment connaitre la taille de mon rectangle dans le JPanel sachant que j'utilise le Flow Layout et que donc je ne connais pas la taille de mes panels...
    A partir du moment où tu dessines, un rectangle, tu peux en connaître sa taille via la méthode getSize() :
    -> Classe Rectangle

    Sinon (car je n'ai pas compris exactement ce que tu souhaitais), tu peux toujours dessiner un rectangle comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public void paint(Graphics g)
    	{
    		int abscisse = 10;
    		int ordonnee = 10;
    		int largeur = 100;
    		int hauteur = 50;
    		g.fillRect(abscisse, ordonnee, largeur, hauteur); // Dessine le rectangle plein avec les parametres donnés.
    	}
    Bien evidemment, tu peux faire ça dans un JPanel.



    Citation Envoyé par harmonips Voir le message
    Merci d'avance pour votre aide.
    De rien.
    @+

  4. #4
    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
    Citation Envoyé par Lionkid Voir le message
    Sinon (car je n'ai pas compris exactement ce que tu souhaitais), tu peux toujours dessiner un rectangle comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public void paint(Graphics g)
        {
            int abscisse = 10;
            int ordonnee = 10;
            int largeur = 100;
            int hauteur = 50;
            g.fillRect(abscisse, ordonnee, largeur, hauteur); // Dessine le rectangle plein avec les parametres donnés.
        }
    A noter que pour les composants swing il est très fortement recommandé de redéfinir la méthode protected void paintComponent plutôt que paint qui possède des tâches autres que le pur dessin du composant (dessin des enfants, des bordures & cie).

  5. #5
    Membre expérimenté Avatar de JerryMouse
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 215
    Par défaut
    Par moment, peut le pas te donner les bonnes dimension.
    dans ce cas, essaie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    panel.getPreferedSize()

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. [JPanel] Deux JPanel dans une fenêtre
    Par cysboy dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 04/09/2006, 16h02
  3. Problème de taille d'un JPanel dans un GridLayout
    Par ZamZam340 dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 30/04/2006, 20h56
  4. un même JPanel dans deux JFrame
    Par blaise_laporte dans le forum Agents de placement/Fenêtres
    Réponses: 15
    Dernier message: 20/04/2006, 16h20
  5. JPanel contenant deux JPanel definir taille de l un d eux
    Par mereyj dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 20/06/2005, 21h40

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