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 :

Placement JComponent dans un JPanel


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 29
    Points : 22
    Points
    22
    Par défaut Placement JComponent dans un JPanel
    Bonjour,

    Je rencontre des difficultés lors de l'ajout de plusieurs (classes héritant de) JComponent (de taille différente) dans un JPanel sans layout (soit avec un FlowLayout).
    Ces difficultés sont liées à la fonction getPreferredSize que je suis obligé de redéfinir dans ma classe héritant de JComponent afin que ceux-ci ai une taille différente de 0 et s'affichent.

    En fait, j'arrive à tout afficher sans problême si je déclare une instance de classe héritant de JComponent qui va tracer toutes mes figures géométriques (que j'aurais voulu tracer séparément en tant que JComponent distinct) en une seule fois fois avec un seul appel à paintComponent et avec un getPreferredSize qui fait la taille du JPanel.

    Seulement, cette méthode me pose des difficultés par la suite car j'aimerai traiter chacune de ces formes géométriques comme des objets à par entière, avec des Listeners spécifiques etc....

    Mon objectif est donc de les paint 1 par 1 dans mon JLabel en tant que JComponent distinct...
    Or si je laisse un getPreferredSize me renvoyant la taille de mon JPanel, il n'y aura qu'un seul élément qui pourra se paint dans mon JPanel (le 1er appelé par paintComponent) car il va prendre toute la place. Il sera bien placé mais prendra toute la place...

    Le gros hic vient quand je renvoye une taille différente (inférieure) de celle du JPanel dans mon getPreferredSize.
    Le programme ne va alors plus placer correctement mes JComponent dans mon JPanel.
    En fait le programme semble allouer une place égale aux dimensions renvoyé par getPreferredSize() centrée sur mon JPanel et dessine dans celle-ci, non dans le JPanel.

    Par exemple, si je paint un rectangle aux coordonnées x=0, y=0 dans la fonction paintComponent de (ma classe héritant de...) mon JComponent avec un getPreferredSize correspondant à la largeur et à la hauteur de mon rectangle, celui-ci sera centrée dans le JPanel et pas du tout en haut à gauche.

    Pourriez-vous m'aider?

    En vous remerciant par avance

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    SI c'est pour un logiciel de dessin, la réponse est: il faut un unique composant sur lequel on dessine tout, les perfs ne seront pas franchement géniales sinon, le placement des composants somme toutes fort aléatoire.

    L'idée est de stocker toutes les formes de façon logique dans une collection sous forme d'objet possédant un delgate de type shape et sachant se dessiner sur des Graphics. Puis on utilisera les différentes méthodes de la classe Shape pour interagir par rapport au point proposé par la MouseListener.

    Toutefois ceci n'est que supposition, en me disant que c'est bien un programme permettant de faire du dessin que tu cherches à faire.

Discussions similaires

  1. Affichage JComponent dans un JPanel
    Par Tumeconnais dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 19/03/2013, 18h44
  2. Placement JLabel dans JPanel
    Par Benduroy dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 02/12/2011, 16h33
  3. Ajouter un JComponent dans un JPanel est ce possible?
    Par jlassiramzy dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 23/04/2007, 21h02
  4. PLacement dans le JPanel
    Par diditin dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 13/06/2006, 14h54
  5. [JPanel] placement d'un texte dans un JPanel
    Par ehmppowa dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 25/11/2005, 14h26

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