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

SWT/JFace Java Discussion :

Problème d'affichage : Layout + paint


Sujet :

SWT/JFace Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Par défaut Problème d'affichage : Layout + paint
    Bonjour à tous,

    J'ai un tout petit souci qui me retarde pas mal surmon travail à cause d'un manque de maîtrise de ma part des composants Graphics :

    J'essaye d'afficher 2 cercles dans la méthode paint() d'un JPanel avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Graphic2D.fillArc(1, 1, 300, 300, unAngle, unEcart);
    Quand j'instancie 2 fois ces JPanel pour les mettres dans un GridLayout(1,2), c'est impec, je les vois bien.

    Mais dès que je change le layout, et que je met flowLayout par exemple, ça ne m'affiche rien...

    En faites, il faut qu'un autre composant leurs créer l'espace nécessaire pour qu'il s'affiche. Mais c'est pas très propore de rajouter un JComponent (comme un JTextArea(300, 300)) juste pour ça...

    Donc est ce qu'il y aurait un moyen d'afficher ces 2 cercles proporement ? (déjà essayé setSize, setMinimumSize, rien changé...)

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 904
    Billets dans le blog
    54
    Par défaut
    setPreferredSize() ne fonctionne pas non-plus ? As-tu essaye de surcharger les setters et/ou les getters de maniere a toujours retourner la bonne taille (la taille peut etre modifiee par le layout APRES que tu l'ai specifiee manuellement).

    Apparement deux solutions (pour ce que j'ai compris de ton probleme) :

    - ne pas utiliser un layout qui pose probleme. La solution peut sembler bizarre mais en fait les layouts peuvent tres bien ne pas utiliser du tout les informations de taille. Il te faut donc repenser le decoupage des sous-panneaux de ton interface, leur agencement et leur layout d'une autre maniere. Parfois il est alors plus simple de ne pas utiliser de layout du tout (setLayout(null) mais dans ce cas il faut penser a specifier les tailles et positions des composants et a gerer les redimensionnements de l'interface soit-meme.

    - faire que ton dessin se mette a l'echelle des dimensions de ton panel plutot que d'avoir une taille fixe.

    Note : dans le cas d'un JPanel on surchage plutot paintComponent() que paint(). Cela permet une meilleure reutilisation du panel surtout si on veux lui ajouter des Border et/ou des sous-composants incrustes par dessus le dessin.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Par défaut
    Merci pour ta réponse claire et complète mais je vais préférer utiliser un JLabel de fond, qui permet de créer l'espace pour dessiner les arcs de cercle.

    Et ok pour le paintComponent() qui fait partie des méthodes appelées par paint() (paintComponent, paintBorder, et paintChildren).

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 904
    Billets dans le blog
    54
    Par défaut
    Dans ce cas precis pourquoi ne pas te creer ta propre implementation de l'interface Icon ? Cela reglerai tout tes probleme !
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/09/2008, 02h55
  2. [Struts-Layout] Problème d'affichage
    Par lili2704 dans le forum Struts 1
    Réponses: 14
    Dernier message: 28/08/2008, 16h23
  3. Réponses: 2
    Dernier message: 25/02/2008, 08h35
  4. [Struts-Layout][layout:date] problème d'affichage
    Par nysaken dans le forum Struts 1
    Réponses: 8
    Dernier message: 22/11/2007, 20h30
  5. Réponses: 3
    Dernier message: 15/06/2007, 11h27

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