Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 23/03/2010, à 02:48

rwikus090

probléme de layoutmanager en java

Bonjour
voila je veux afficher une fenêtre qui aura 4 champs à droite et qui sont des Jlabels (nom,mot de passe,nouveau mot de passe,retapez votre mot de passe) bien sur à gauche y aura des JTextField correspondant à ces labels, voila comment j'ai découpé ma fenêtre , en premier temps y a un grand JPanel qui a un borderlayour qui met dans le sud "un bouton" et dans le centre les champs que j'ai mentionné en haut, j'ai préféré mettre les champs dans un panel qui a un gridlayout (4,2) biensur ce panel sera dans le centre du grand panel,
le problème c'est qu'il m'affiche pas une grille de 4*2 mais une grille de 2*4 avec de grand label et de grand JTextField, comment je fais pour contrôler leur taille et régler ce dérèglement merci

Voila le code:

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;

import javax.swing.*;


public class Fenetre extends JFrame {
private JPanel principal=new JPanel();
private JPanel labeltexte=new JPanel();

JLabel lab1=new JLabel("Nom");
JLabel lab2=new JLabel("Mot");
JLabel lab3=new JLabel("Nouve");
JLabel lab4=new JLabel("Retape");
private JTextField nom=new JTextField(20);
private JPasswordField pass=new JPasswordField(8);
private JPasswordField newPass=new JPasswordField(8);
private JPasswordField retapPass=new JPasswordField(8);
private JButton lancer=new JButton("lancer l application");
public Fenetre(){
this.setTitle("tp5");

this.setSize(300,300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
//GridLayout g=new GridLayout(4,2);
this.labeltexte.setLayout(new GridLayout(4,2));
labeltexte.add(lab1);
labeltexte.add(lab2);
labeltexte.add(lab3);
labeltexte.add(lab4);
labeltexte.add(nom);
labeltexte.add(pass);
labeltexte.add(newPass);
labeltexte.add(retapPass);

BorderLayout b=new BorderLayout();
this.principal.setLayout(b);
this.principal.add(labeltexte,b.CENTER);
this.principal.add(lancer,b.SOUTH);
this.setContentPane(principal);
this.setVisible(true);

}

}

Hors ligne

#2 Le 24/03/2010, à 14:33

fridobox

Re : probléme de layoutmanager en java

L'ordre de remplissage d'un GridLayout commence dans la case en haut à gauche, rempli la première ligne, puis la seconde ligne de gauche à droite, etc.

Donc :

labeltexte.add(lab1);
        labeltexte.add(nom);
        labeltexte.add(lab2);
        labeltexte.add(pass);
        labeltexte.add(lab3);
        labeltexte.add(newPass);
        labeltexte.add(lab4);
        labeltexte.add(retapPass);

PS : c'est pas vraiment le forum dédié.


Ubuntero depuis 7.04. Linux registered user number 486328

Hors ligne