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 :

Besoin d'aide pour plusieurs Layout sur une même Frame


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
    Juillet 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 75
    Par défaut Besoin d'aide pour plusieurs Layout sur une même Frame
    Bonjour, J'aimerais savoir si qqn pourrait m'éclairer concernant le sujet susmentionné.
    Pour l'explication, J'ai utilisé et retravaillé le fichier "GridBagLayoutDemo.java"
    disponible et code visible directement depuis la Javadoc à l'adresse suivante :

    http://java.sun.com/docs/books/tutor...ayoutDemo.java

    J'aimerais savoir si c'est possible de placer un layout en dessous du GridBagLayout
    (genre un borderLayout dont le centre occuperait tout le panel)
    afin de teindre le fond de ma frame grace à la méthode setBackgroundColor...

    Je vous remercie d'avance...

  2. #2
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    Je vois pas exactement se que tu souhaites faire mais tu peux combiner les layout.
    Un Panel global en BordeLayout
    Un panel en-tête borderLayout.NORTH ( par exemple )
    Un panel principal(GridBagLayout) bordeLayout.CENTER

    Je ne sais pas si j'ai répondu à la question

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 75
    Par défaut
    Au fait mon programme doit pouvoir changer de couleur de fond
    à la demande, car je vais créer des JTextFields avec possibilité d'y entrer des chiffres
    qui seront récupérés pour SETer le background à la couleur souhaitée par l'utilisateur.
    Mais je veux également mon GridBagLayout parce que pour la disposition de mes boutons et de mes jtextfields et de mes JSliders, il est plus facil
    pour placer mes composants là ou je le souhaite.
    Mais je pense que si je règle mon setBackgroundColor dans mon GridBagLayout, ça risque de me faire des résultats innatendus ^^
    C'est pour cela que derrière mon gblayout (ou j'aurais placé mes composants)
    je veux un borderLayout ou le centre prendra tout l'espace
    et ou je pourrais SETter la couleur de fond d'un coup...

    Le souci c'est que je n'ai jamais combiné 2 layouts différents ensemble, alors je vois pas trop comment m'y prendre.

  4. #4
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    A ta place je prendrais un bouton avec JColorChooser pour la couleur plutôt qu'un JTextFiled.
    Ensuite pour modifier la couleur de fond, il n'y a pas de mystère,
    il faut faire un setBackground sur ton panel mais aussi sur tous tes composants(JLabel, JTextField,...).

    Ou alors, tu mets le background de tous tes composants en transparent et tu modifie juste le backGround du panel(GridBagLayout)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 78
    Par défaut
    pour compléter la réponse précédente : la couleur de fond se fait sur le jpanel, pas sur le layout. Pour ce que tu veux, pas besoin d'avoir plusieurs jpanels/layout, un seul suffit. Et si tu veux effectivement que même les composants placés dans ton jpanel/layout laissent paraitre la couleur de fond, alors les rendre transparents.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 75
    Par défaut
    Citation Envoyé par Ivelios Voir le message
    A ta place je prendrais un bouton avec JColorChooser pour la couleur plutôt qu'un JTextFiled.
    Ensuite pour modifier la couleur de fond, il n'y a pas de mystère,
    il faut faire un setBackground sur ton panel mais aussi sur tous tes composants(JLabel, JTextField,...).

    Ou alors, tu mets le background de tous tes composants en transparent et tu modifie juste le backGround du panel(GridBagLayout)

    Oui un JColorChosser m'aurait été bien utile, mais dans l'énoncé de mon exercice
    je DOIS utiliser des JTextField afin d'y récupérer les valeurs des couleurs pour ensuite récupérer les couleurs et peindre le fond.


    Pour l'autre réponse, oui, je pense que c'est c'que je vais faire. Mais je ne veux pas que les boutons soient transparents, je veux que le layout le soit...
    C'est à dire que je dois voir les boutons même lors du changement de couleur du panel.
    Mais pas le layout autour.

    C'est pour cela que le premier panel en GridBag me servira à placer mes composants comme je le souhaite
    et que le deuxième panel (en BorderLayout) me servirait a teindre le fond...

    Vous pensez que je devrais pas faire comme ça ?
    Parce que je sais pas quel résultat j'obtiendrais en faisant un setBackgroundCOlor sur le Panel en GridBag...

    J'ai pas eu le temps de retoucher à mon exercice à cause de mon taf,
    mais je m'y pencherais cet après-midi.

    En attendant si vous avez des conseils je suis toujours preneur...

  7. #7
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    Tu fais compliquer alors que tu peux faire simple.
    Pourquoi ne pas utiliser ton panel(GridBag) pour placer les composants ET modifier la couleur.

    J'ai faits une fenêtre qui contient un JPanel(new GridBagLayout()).
    J'y est ajouté mes composants.(JLabel, JTextField, JButton, JCheckBox,...)
    Ensuite j'ai appliqué un fond rouge à mon panel.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    panel.setBackground(Color.red);
    J'obtiens la première image.

    Soit le JCheckBox livre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    JCheckBox livre = new JCheckBox("Livre");
    panel.add(livre,/*new GridBagConstraints()*/c);
    Pour obtenir le résultat sur la deuxième image, Il me semble que c'est ce que tu demande, Tu a deux solutions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    livre.setBackground(Color.red);//Mettre le fond en rouge
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    livre.setOpaque(false);//Mettre le fond en transparent

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

Discussions similaires

  1. Zoom dans plusieurs images sur une même frame
    Par GDMINFO dans le forum Beamer
    Réponses: 1
    Dernier message: 20/10/2010, 08h41
  2. Gestion de plusieurs panel sur une même Frame
    Par Neilime05 dans le forum NetBeans
    Réponses: 0
    Dernier message: 22/07/2009, 16h28
  3. Besoin d'aide pour un exercice sur les registres
    Par zakuza dans le forum Assembleur
    Réponses: 5
    Dernier message: 14/04/2006, 14h23
  4. Réponses: 2
    Dernier message: 10/03/2006, 13h55

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