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 :

[JLayeredPane] problème d'affichage


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2004
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 45
    Par défaut [JLayeredPane] problème d'affichage
    Bonjour,

    J'utilise un JLayeredPane pour positionner mes composants mais ceux ci ne s'affichent pas et je ne comprends pas pourquoi.
    J'ai d'abord instancié mon JLayeredPane.
    Ensuite, je crée mes composants, je leur donne une position et une taille avec un setBounds(int x, int y, int w, int h) et je les ajoute au JLayeredPane.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    JLayeredPane layeredPane = new JLayeredPane();
    JButton jbStart = new JButton("Démarrer");
    jbStart.setBounds(5, 5, jbStart.getWidth(), jbStart.getHeight());
    layeredPane.add(jbStart);
     
    maFrame.getContentPane().add(layeredPane);
    Le JLayeredPane est bien crée. Je lui ai appliqué une bordure et celle-ci s'affiche bien. Par contre, pour le contenu, c'est le néant.
    Si quelqu'un a une piste, merci d'avance,

    Alex

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 71
    Par défaut
    Bon, d'abord... tu travailles avec quel jdk?
    as-tu essayer de valider tes composants?
    J'avais eu le cas, cela a été résolu avec un validate() du Container
    as-tu essayer de faire un setVisible(true)
    tes composant sont-ils resizés?
    Car un composant sans taille (selon le Layout) n'st pas affiché s'ila une taille de 0 sur 0.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public static void setSize(JComponent jc, int x, int y) {
    	Dimension d = new Dimension(x, y);
    	jc.setBorder(BorderFactory.createRaisedBevelBorder());
    	jc.setMaximumSize(d);
    	jc.setMinimumSize(d);
    	jc.setPreferredSize(d);
    	jc.setSize(d);
    }
    sinon...
    http://java.sun.com/docs/books/tutor...yeredpane.html

  3. #3
    Membre averti
    Inscrit en
    Juin 2004
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 45
    Par défaut
    Alors, j'utilise le jdk 1.4.2.
    J'ai essayé de valider mes composants et de les resizer avec un setPreferredSize mais aucun résultat.
    J'ai essayé de valider le Container et la JFrame, mais rien non plus.
    J'ai aussi essayé les setVisible(true), même résultat.
    Et j'avais déjà regardé le lien que tu m'as donné. Je l'ai regardé de nouveau mais je ne vois vraiment pas d'où vient le problème.
    Bref, j'ai l'impression d'avoir tout essayé mais ça ne donne rien. Je ne comprends vraiment pas.

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 71
    Par défaut
    Citation Envoyé par alexandra_ape
    et de les resizer avec un setPreferredSize mais aucun résultat.
    un setPreferredSize n'est pas suffisant il faut aussi définir les setMin, setMax, setSize

    as tu fait un moveToFront de ton composant dans le JLayeredPane?

    As-tu essayé de débogguer en utilisant un JPanel au lieu de JLayeredPane pour voir si tes composants s'affichent...
    il s'agit de savoir si ce sont les composants qui ne peuvent pas s'afficher ou si c'est le layeredPane qui empêche les composants de s'afficher.

  5. #5
    Membre averti
    Inscrit en
    Juin 2004
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 45
    Par défaut
    Je vais essayer le setMin et le setMax. J'avais déjà essayé setSize() mais toujours rien.
    Le moveToFront() ne donne rien non plus.
    J'ai essayé d'ajouter mes composants dans un JPanel à la place du JLayeredPane. Ils s'affichent bien.
    Par ailleurs, le JLayeredPane s'affiche bien aussi puisque je lui ai affecté une bordure et un fond blanc et ces propriétés s'affichent bien.

    Pour ajouter un composant à un JLayeredPane, il faut bien faire comme ceci, je ne me trompe pas ? Il n'y a rien d'autre à faire ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Component monComposant = new Component();
    monComposant.setBounds(...);
    monLayeredPane.add(monComposant, new Integer(x));
    Merci de votre aide

  6. #6
    Membre averti
    Inscrit en
    Juin 2004
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 45
    Par défaut
    Bon, j'ai trouvé. Le problème vient apparemment de la taille des composants.
    Merci beaucoup pour votre précieuse aide.

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

Discussions similaires

  1. problème d'affichage [JLayeredPane]
    Par Rose-Eni dans le forum NetBeans
    Réponses: 0
    Dernier message: 07/06/2011, 23h58
  2. Problème d'affichage avec trace
    Par WriteLN dans le forum Flash
    Réponses: 10
    Dernier message: 22/10/2003, 17h59
  3. [Kylix] problème d'affichage
    Par scalvi dans le forum EDI
    Réponses: 1
    Dernier message: 18/06/2003, 11h07
  4. Réponses: 1
    Dernier message: 06/03/2003, 12h57
  5. probléme d'affichage d'une fiche
    Par sb dans le forum Composants VCL
    Réponses: 7
    Dernier message: 29/08/2002, 10h43

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