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

AWT/Swing Java Discussion :

[GridBagLayout]Comment récupérer un composant dans un cellule précise d'un GridBag


Sujet :

AWT/Swing Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 80
    Par défaut [GridBagLayout]Comment récupérer un composant dans un cellule précise d'un GridBag
    Salut tout le monde,

    Le titre me semble explicite....
    En fait, j'ai un GridBagLayout, sur un JPanel, et j'aimerais pouvoiur supprimer un composant de ce panel a partir des coordonnées dans le GridBagLayout.
    Tout d'abord, est ce possible....
    Et si oui, sauriez vous comment faire?

    Merci a tous

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 62
    Par défaut
    En faisant un tour du coté de la javadoc, j'ai trouvé cela : removeLayoutComponent().

    Renseignes-toi dessus

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 80
    Par défaut
    Oui j'avais vu cette fonction, mais elle prend en parametre un Composant, et moi, ce que je veux c'est justement récupérer ce composant à partir de ses coordonnées dans le GridBagLayout

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 62
    Par défaut
    Donc ta question de depart n'étais pas claire Quand tu parlais de supprimer, je pensais que tu connaissais le composant.

    Dsl, mais je n'ai pas d'autre idée pour le moment.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 80
    Par défaut
    En effet,
    DSl

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 62
    Par défaut
    Plutot que de supprimer un composant, ce qui est a priori impossible, cherche plutot comment placer un composant à une position donnée. Comme ça, tu pourra mettre un "null" à la place de ton ancien composant, ce qui revient à l'effacer.

  7. #7
    Membre émérite
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Par défaut
    la grille du GridBagLayout est virtuelle. nul par dans le LayoutManager il garde les position des composant (je veut dire le composant A est dans la grille a la position X, Y)
    ca n'existe pas !
    tu peut l'implementer toi meme si tu veut :-))

  8. #8
    Membre éclairé Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Par défaut
    Oui tu peux l'implementer toi même, ce qui veut donc dire que tu creera ton layout à partir de cette impémentation, et tu auras donc les coordonnées.
    Va faire un tour sur les post de Calo

  9. #9
    Membre éprouvé Avatar de yakanet
    Homme Profil pro
    Inscrit en
    Décembre 2005
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations forums :
    Inscription : Décembre 2005
    Messages : 137
    Par défaut
    Il me semble qu'avec un MouseListener, tu peux récuperer le composant qui est en dessous de ton pointeur.

    A explorer comme idée

  10. #10
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut
    Moi ce qui m'interresse d'avantage, c'est combien de cellules le GridBagLayout contient-il par défaut ?
    En effet, quand on lit la FaQ, on peut lire que dans les gridBagConstraints on fixe le nombre de cellules que va occupper notre composant.
    Mais comment savoir le nombre ou quel nombre représente quelle taille ?

  11. #11
    Membre émérite
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Par défaut
    > c'est combien de cellules le GridBagLayout contient-il par défaut ?

    0. ca depend de tes GridBagConstraints.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    // declare un panel avec comme layout un GridBagLayout
    JPanel p = new JPanel(new GridBagLayout());
     
    //construis un gbc. par defaut gridx = RELATIVE gridy = RELATIVE width = 0 heigth =0
    GridBagConstraints gbc = new GridBagConstraints();
     
    p.add(new JButton());
    p.add(new JButton());
    nule par tu as encore preciser la taille de la grille (qui n'est pas une vrai grille). c'est juste une facon de voir les chose.

    ta grille apres quand tu a rajouter les deux bouton sera une grille de 4 case.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    --------------------------------------------------
    |
    |
    |                   
    |                ----------
    |                |    b1    |    (case x=1, y=0)
    |                ---------- 
    |                               ----------
    |             (x=0, y=1)       |     b2   |
    |                               ----------
    ----------------------------------------------------

    > Mais comment savoir le nombre ou quel nombre représente quelle taille ?

    j'ai pas compris.
    chaque cellule de ta grille va etre definie par les contrainte de tes composant qui se trouve sur la meme ligne et la meme colonne et leur prefered size/minimum size. (le gridbag layout n'utilise pas le maximum size).

    reexplique ta question. stp parce que j'ai pas compri

  12. #12
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut
    les contraintes width = X heigth = X conteinnent le nombre de cellule que le composant va utiliser. Comment savoir quelle nombre de cellule lui allouer sans connaitre la taille par défaut d'une cellule ?

    c-a-d je veux un composant de 1cm de long. Comment indiquer une contrainte en donnant un nombre de cellules en y sans savoir combien de cm fait une cellule ?

    ...je ne sais pas si je suis très clair, là, d'un coup....

  13. #13
    Membre émérite
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Par défaut
    la taille de la cellule s'ajuste au prefered (ou minimum) size du composant. c'est pas l'inverse :-)

    si tu met un composant qui a une minimum size de 100 en largeur dans une cellule et qu'il a un gridwidth de 1 cette colonne de cellule aura toujours une largeur minimum de 100 (+ insets si y en a ).

  14. #14
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut
    Citation Envoyé par bbclone
    la taille de la cellule s'ajuste au prefered (ou minimum) size du composant. c'est pas l'inverse :-)

    si tu met un composant qui a une minimum size de 100 en largeur dans une cellule et qu'il a un gridwidth de 1 cette colonne de cellule aura toujours une largeur minimum de 100 (+ insets si y en a ).
    OKKKK !!!!
    Je n'avais pas saisi comme ça.
    Merci pour l'explication.

Discussions similaires

  1. Comment récupérer 7 chiffres dans une cellule ?
    Par Novice_vba dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 25/06/2013, 11h56
  2. Réponses: 4
    Dernier message: 19/04/2009, 13h44
  3. Comment récupérer le nom de la cellule dans une plage
    Par DubDub dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/03/2009, 12h26
  4. Réponses: 2
    Dernier message: 27/01/2009, 13h41
  5. Réponses: 2
    Dernier message: 17/09/2006, 23h33

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