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 :

Centrer un JTextField dans un GridLayout


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 47
    Par défaut Centrer un JTextField dans un GridLayout
    Bonjour a tous,

    Voila mon probleme, je voudrai centrer une zone de texte dans un gridlayout.

    J'ai d'abord tenté de placer directement un JTextField dans une case du gridlayout, mais ca rend un résultat plutot tres moche, la JTextField s'etend sur toute la ces.

    J'ai ensuite essayer de placer le JTextField dans un FlowLayout, puis ensuite d'inserer le FlowLayout dans la case du GridLayout, mais la le probleme c'est que la zone te texte se place tout en haut et non au centre de la case.

    Donc si vous avez une petite astuce, un remede miracle, ou tout simplement une solution toute bete, merci de me la faire partager!

  2. #2
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Essaie en remplaçant le FlowLayout par un BorderLayout et en mettant le JTextField au centre du panel.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 221
    Par défaut
    Tu peux aussi essayer GridBagLayout.

    C'est comme GridLayout sauf que tu peux placer les composants ou tu veux avec la taille que tu veux.
    Pour cela il faut aussi utiliser la classe GridBagConstraints qui sont les contraintes pour ton GridBagLayout.

  4. #4
    Membre confirmé Avatar de Original Prankster
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 226
    Par défaut
    Le BorderLayout ne te permettra pas de le placer au centre. Si tu as d'autres composants, il va te falloir étudier le GridBagLayout... Tu pourras ainsi fixer sa position et ses dimensions.

    ++

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 8
    Par défaut
    Mets ton JTextField dans un JPanel de type

    JPanel panel = new FlowLayout(FlowLayout.CENTER);
    panel.add(tonJtextField);

    ensuite ajoute ce panel dans la case de ton grid:

    grid.add(panel);

    normalement ca devrait te centrer ton JTextfield sans l'étirer......

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 47
    Par défaut
    j'ai deja essayer avec le flowlayout, mais ca me place mon composant tout en haut dans la case du gridlayout.

    Bon ba il va falloir que je me mette au gridbaglayout, et je vous direz si j'y suis parvenue ou non...

    en tout cas merci de vos réponse

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 47
    Par défaut
    Je ne crois pas que le GridBagLayout soit la solution en fait.

    Sinon le FlowLayout me centre mon JTextField, mais juste horizontalement, et je souhaiterai centrer egalement verticalement...

    Voila une capture d'écran de mon appli :

    (ne vous soucier pas des couleur, c'est un moyen de reperer les panel..)

    donc mon truc serai de centrer la zone de texte par rapport au cases de gauche.
    que ca donne ca quoi :

    fdsfdsf
    _____________[zone de texte]
    fdsfdsfsd

  8. #8
    Membre confirmé

    Inscrit en
    Décembre 2002
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 68
    Par défaut
    sinon ...

    Dasn netBeans, il exite une classe qui s'apelle AbsolutLayout, elle prend en paramètres des AboslutConstraints.

    Ce layout (apparament développé par netBeans) permet de faire du positionnement avec des coordonnées en pixel.

    Bien plus simple que ces de layout à la mord moi le noeud.

    Ces deux classes se trouvent là :
    C:\Program Files\netbeans-4.1\ide5\sources\org\netbeans\lib\awtextra

    tu peux trouver netBeans ici :
    http://www.netbeans.org/

    C'est un framework de dev type Jbuilder mais version libre.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 47
    Par défaut
    je te remercie, j'irai voir ca!

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 10
    Par défaut
    essaye ce code
    j'arrive pas a te montrer a quoi ca ressemble
    je viens de faire ca rapidement avec jbuilder.

    import javax.swing.JPanel;
    import java.awt.Dimension;
    import java.awt.GridBagLayout;
    import java.awt.GridBagConstraints;
    import java.awt.Insets;
    import javax.swing.BorderFactory;
    import javax.swing.border.BevelBorder;
    import javax.swing.border.EtchedBorder;
    import java.awt.GridLayout;
    import java.awt.Color;
    import javax.swing.JLabel;
    import javax.swing.JTextField;

    public class Panel1 extends JPanel {
    private GridBagLayout gridBagLayout1 = new GridBagLayout();
    private JPanel jPanel1 = new JPanel();
    private JPanel jPanel2 = new JPanel();
    private JPanel jPanel3 = new JPanel();
    private JPanel jPanel4 = new JPanel();
    private JPanel jPanel5 = new JPanel();
    private JPanel jPanel6 = new JPanel();
    private JPanel jPanel7 = new JPanel();
    private GridBagLayout gridBagLayout2 = new GridBagLayout();
    private JLabel jLabel1 = new JLabel();
    private GridBagLayout gridBagLayout3 = new GridBagLayout();
    private JLabel jLabel2 = new JLabel();
    private JTextField jTextField1 = new JTextField();
    private JTextField jTextField2 = new JTextField();
    private JTextField jTextField3 = new JTextField();
    private JTextField jTextField4 = new JTextField();

    public Panel1() {
    try {
    jbInit();
    } catch(Exception e) {
    e.printStackTrace();
    }
    }

    private void jbInit() throws Exception {
    this.setLayout(gridBagLayout1);
    this.setSize(new Dimension(614, 428));
    this.setBackground(Color.magenta);
    jPanel1.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED));
    jPanel1.setLayout(gridBagLayout3);
    jPanel1.setPreferredSize(new Dimension(50, 4));
    jPanel2.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED));
    jPanel2.setLayout(gridBagLayout2);
    jPanel2.setBackground(Color.orange);
    jPanel2.setPreferredSize(new Dimension(50, 403));
    jPanel3.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED));
    jPanel3.setPreferredSize(new Dimension(50, 14));
    jPanel4.setPreferredSize(new Dimension(10, 10));
    jLabel1.setText("gdfsgd");
    jLabel2.setText("gdf");
    jTextField1.setPreferredSize(new Dimension(100, 19));
    jTextField2.setPreferredSize(new Dimension(100, 19));
    jTextField3.setPreferredSize(new Dimension(100, 19));
    jTextField4.setPreferredSize(new Dimension(100, 19));
    jPanel1.add(jTextField1, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.EAST, GridBagConstraints.HORIZONTAL, new Insets(40, 0, 0, 0), 0, 0));
    jPanel1.add(jTextField2, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.1, GridBagConstraints.NORTH, GridBagConstraints.NONE, new Insets(80, 0, 0, 0), 0, 0));
    jPanel1.add(jTextField4, new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 35, 0), 0, 0));
    this.add(jPanel1, new GridBagConstraints(1, 0, 1, 1, 0.3, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(5, 5, 5, 5), 0, 0));
    jPanel4.add(jLabel1, null);
    jPanel2.add(jPanel4, new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(5, 5, 5, 5), 0, 0));
    jPanel5.add(jLabel2, null);
    jPanel2.add(jPanel5, new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(5, 5, 5, 5), 0, 0));
    jPanel2.add(jPanel6, new GridBagConstraints(0, 2, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(5, 5, 5, 5), 0, 0));
    jPanel2.add(jPanel7, new GridBagConstraints(0, 3, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(5, 5, 5, 5), 0, 0));
    this.add(jPanel2, new GridBagConstraints(0, 0, 1, 1, 0.3, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(5, 5, 5, 5), 0, 0));
    jPanel3.add(jTextField3, null);
    this.add(jPanel3, new GridBagConstraints(2, 0, 1, 1, 0.3, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(5, 5, 5, 5), 0, 0));
    }
    }

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 47
    Par défaut
    ouai ca marche mais bof..
    faut pas retailler la fenetre pour que ca fonctionne tout le temps, et puis dans mon appli, le nombre de cases est indeterminé au départ.

    m'enfin, c'est pas grave, je laisserai comme ca... c'est pas tres joli mais ca marche.

    merci de votre aide

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 10
    Par défaut
    explique exactement ce que tu veux comme tu veux je te le fais.
    ca prend pas longtemps tu sais.
    GridBagLayout + editeur de jbuilder tu fais une interface comme tu veux en moins de 3 minutes montre en main

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 47
    Par défaut
    ba voila, je fais une application qui sert a creer des tournois.
    Bon elle est vraiment pas enorme et c'est pas un monstre.

    donc la fenetre pricipale se compose d'un jtextfield qui permet d'entrer un nom (celui du jeu en question), d'un jtextarea qui permet de saisir les joueurs qui seront espacé par un retour a la ligne, puis d'un bouton de validation.

    une fois validé, le logiciel compte combien de joueur a ete inscrit, et construit la page en conséquence.

    donc a gauche se trouve le nom de tous les joueurs, les un haut dessus des autres, puis un peu plus a droite se trouve le nombredejoueurs/2 de jtextfield (pour entrer le nom du gagnant), et ainsi de suite jusqu'a ce qu'il ne reste plus qu'un jtextfield.

    et donc on en arrive a mon probleme qui est que les jtextfield ne sont pas centrer entre le nom des 2 joueurs qui doivent jouer l'un contre l'autre.

    c'est asser compréhensible...??? sinon je vous montre direct l'appli fini avec un design pas tres joli a cause de ca...

  14. #14
    Membre chevronné Avatar de NeptuS
    Profil pro
    Inscrit en
    Août 2005
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 392
    Par défaut
    tien ..j'en ai une bonne bidouille pour toi :
    ATTENTION : exemple à ne PAS suivre !!! lol

    dans ta case, tu met 1 JPanel.
    à ce JP, tu lui applique un GridLayout(5,1);
    tu ajoute deux fois "new JPanel()"
    et tu ajoute ton textField.


    Elle est pas belle la vie ?


    Attention, je ne me sentirai en rien responsable de toute mauvaise interprétation ou utilisation de cet algorithme




    .

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 47
    Par défaut
    lol, ba ca ne coute rien d'essayer, je testerai ca demain et on verra bein, mais ca peut etre une bonne bidouille lol!!

  16. #16
    Membre confirmé Avatar de soulhouf
    Inscrit en
    Août 2005
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 213
    Par défaut
    essaie d'utiliser la classe GridBagConstraints qui utilise GridBagLayout à la place de Gridlayout car elle presente l'aventage de la flexibilité.
    car moi aussi j'ai rencontré le même problème que toi et je l'ai résolut comme ça!

Discussions similaires

  1. Centrer un texte dans une page
    Par Samanta dans le forum Mise en forme
    Réponses: 5
    Dernier message: 20/09/2010, 23h30
  2. [swing] disposition des éléments dans un GridLayout
    Par al85 dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 11/02/2005, 18h36
  3. Centrer le texte dans une TStringGrid
    Par Rodrigue dans le forum C++Builder
    Réponses: 2
    Dernier message: 10/06/2004, 12h01
  4. Comment centrer un Texte dans un rectangle ...
    Par Djedjeridoo dans le forum Composants VCL
    Réponses: 3
    Dernier message: 16/06/2003, 22h56
  5. Centrer un texte dans un string Grid
    Par christine dans le forum C++Builder
    Réponses: 5
    Dernier message: 22/10/2002, 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