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

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 75
    Points : 31
    Points
    31
    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 expérimenté 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 : 34
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Points : 1 540
    Points
    1 540
    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
    Il était une fois [...] Et ils vécurent heureux et eurent beaucoup d'enfants!

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 75
    Points : 31
    Points
    31
    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 expérimenté 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 : 34
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Points : 1 540
    Points
    1 540
    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)
    Il était une fois [...] Et ils vécurent heureux et eurent beaucoup d'enfants!

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 78
    Points : 58
    Points
    58
    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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 75
    Points : 31
    Points
    31
    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 expérimenté 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 : 34
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Points : 1 540
    Points
    1 540
    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
    Il était une fois [...] Et ils vécurent heureux et eurent beaucoup d'enfants!

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 75
    Points : 31
    Points
    31
    Par défaut
    Une fois de + IVELIOS tu es mon sauveur...
    T'es un bon. C'est EXACTEMENT c'que tu as fait en deuxième image que je veux.
    Mais je pensais que le rouge cacherais le texte et que cela deviendrait illisible.



    J'crois que le 90% des blocages que j'ai eu c'est toi qui me les as résolus ^^

    Merci pour le temps que tu m'as consacré.

    A bientôt.

  9. #9
    Membre expérimenté 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 : 34
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Points : 1 540
    Points
    1 540
    Par défaut
    Merci pour toutes ces éloges mais tous cela n'est que le fruit du hasard .
    Il s'avère que toutes les questions que tu te poses actuellement je me les suis moi même posés il y a un ans.

    Merci Ghorin pour le complément de réponse.
    CosaNostra, bonne continuation
    Il était une fois [...] Et ils vécurent heureux et eurent beaucoup d'enfants!

+ 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