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 :

Position des JTextFields et JLabel sur une Fenetre


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre habitué
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2005
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 246
    Points : 159
    Points
    159
    Par défaut Position des JTextFields et JLabel sur une Fenetre
    Bonjour,

    J'ai fait une fenêtre sous Swing, mais j'ai un problème pour ranger les JLabel et leurs JTextField correscondants. Presque tous les champs sont centrés.

    Je vous donne en fichier joint l'image de ma fenêtre.
    Images attachées Images attachées  

  2. #2
    Membre habitué
    Homme Profil pro
    Chef de projet, développeur .net
    Inscrit en
    Juin 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet, développeur .net
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2010
    Messages : 76
    Points : 136
    Points
    136
    Par défaut
    Bonjour,

    tu as utilisé quoi comme Layout pour gérer le placement de tes composants et tu les as insérer comment ?
    Un peu de code nous permettrait d'y voir plus clair.

  3. #3
    Membre habitué
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2005
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 246
    Points : 159
    Points
    159
    Par défaut
    J'ai utilisé des Box et BorderLayout
    Voici mon code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
     
    package taxes.graphique;
     
    import java.awt.BorderLayout;
    import java.awt.Container;
    import java.awt.FlowLayout;
    import java.awt.Image;
    import java.awt.Toolkit;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.sql.Connection;
     
    import javax.swing.Box;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JTextField;
     
    import taxes.Famille;
     
    public class SaisieFamille extends JFrame implements ActionListener{
     
    	private static final long serialVersionUID = 1L;
    	JTextField CodeVillage;
    	JTextField CodeFamille;
    	JTextField NomChefFamille;
    	JTextField PreChefFamille;
    	JTextField message;
    	JButton fermer;
    	JButton ajouter;
     
    	JLabel CodeVil; 
    	JLabel CodeF; 
    	JLabel NomCF; 
    	JLabel PrenCF; 
     
    	public SaisieFamille() {
    		setTitle("Nouvelle famille");
    		setBounds(10,40,500,400);
     
    		CodeVil = new JLabel("Code Village      : ");
    		CodeVillage = new JTextField(15);
    		CodeVillage.setMaximumSize(CodeVillage.getPreferredSize());
    		Box hBox1 = Box.createHorizontalBox();
    		hBox1.add(CodeVil);
    		hBox1.add(Box.createHorizontalStrut(5));
    		hBox1.add(CodeVillage);
     
    		CodeF = new JLabel("Code Famille        : ");
    		CodeFamille = new JTextField(20);
    		CodeFamille.setMaximumSize(CodeFamille.getPreferredSize());
    		Box hBox2 = Box.createHorizontalBox();
    		hBox2.add(CodeF);
    		hBox2.add(Box.createHorizontalStrut(5));
    		hBox2.add(CodeFamille);
     
    		NomCF= new JLabel("Nom Chef Famille     : ");
    		NomChefFamille = new JTextField(25);
    		NomChefFamille.setMaximumSize(NomChefFamille.getPreferredSize());
    		Box hBox3 = Box.createHorizontalBox();
    		hBox3.add(NomCF);
    		hBox3.add(Box.createHorizontalStrut(5));
    		hBox3.add(NomChefFamille);
     
    		PrenCF= new JLabel("Prénom Chef Famille : ");
    		PreChefFamille = new JTextField(30);
    		PreChefFamille.setMaximumSize(PreChefFamille.getPreferredSize());
    		Box hBox4 = Box.createHorizontalBox();
    		hBox4.add(PrenCF);
    		hBox4.add(Box.createHorizontalStrut(5));
    		hBox4.add(PreChefFamille);
     
    		Box hBox5 = Box.createHorizontalBox();
    		hBox5.add(Box.createHorizontalStrut(15));
    		hBox5.add(Box.createGlue());
    		hBox5.add(ajouter = new JButton("Ajouter"));
    		ajouter.addActionListener(this);
     
    		Box hBox6 = Box.createHorizontalBox();
    		hBox6.add(Box.createGlue());
    		hBox6.add(fermer = new JButton("Fermer"));
    		fermer.addActionListener(this);
     
    		message = new JTextField(30);
    		message.setMaximumSize(message.getPreferredSize());
    		Box hBox7 = Box.createHorizontalBox();
    		hBox7.add(Box.createHorizontalStrut(5));
    		hBox7.add(message);
     
    		Box vBox = Box.createVerticalBox();
    		vBox.add(hBox1);
    		vBox.add(hBox2);
    		vBox.add(hBox3);
    		vBox.add(hBox4);
    		vBox.add(hBox5);
    		vBox.add(hBox6);
    		vBox.add(hBox7);
    		vBox.add(Box.createGlue());
    		/*========================================================*/	
    		Container c = getContentPane();
    		c.add(vBox,BorderLayout.WEST);
    		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//Fermeture de cette fenêtre seulement
    		Image icone=Toolkit.getDefaultToolkit().getImage("./telly.jpg");
    		setIconImage(icone);
    	}

  4. #4
    Membre habitué Avatar de dev_2007
    Profil pro
    Inscrit en
    Août 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 98
    Points : 138
    Points
    138
    Par défaut
    Salut,

    tu peux utiliser la méthode setBounds(int x, int y, int width, int height) qui permet de changer la taille d'un component et le mettre la ou tu veux dans ton IHM.

    Avec : x : le nouvel abscisse pour le composent
    y : le nouvel ordonné pour le composent
    width : largeur du composant
    height : hauteur du composant :

    un exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    //Create du frame.
    frame = new JFrame("Espace Connexion");
    //récupération  de la taille de la bordure du conteneur frame. 
    Insets insets = frame .getInsets();
    //création de l'objet LoginLabel
    LoginLabel = new JLabel();
    //on précise une dimmension à notre label
    LoginLabel.setPreferredSize(new Dimension(300,10)) ;
    //On lui donne un texte
    LoginLabel.setText("Identifiant : ");
    //on centre le Jlabel		LoginLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    frame .add(LoginLabel);
    size = LoginLabel.getPreferredSize();
    LoginLabel.setBounds(-20 +insets.left, 140+insets.top, size.width + 50, size.height + 20);
    voila, si t'as des problèmes n'hésites à demander.

    Cdt.
    Cordialement,
    HEL
    __________________
    Tout d'abord le faire fonctionner , Ensuite qu'il soit rapide. Enfin le rendre agréable à utiliser.

  5. #5
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Citation Envoyé par dev_2007 Voir le message
    Salut,

    tu peux utiliser la méthode setBounds(int x, int y, int width, int height) qui permet de changer la taille d'un component et le mettre la ou tu veux dans ton IHM.
    C'est une très mauvaise pratique, ça amène à un code bordélique, peu maintenable, à une interface figée et ne gérant aucun redimensionnement. Et à des bugs de positionnement suivant les plateformes.

    Il vaut amplement mieux lui préférer l'utilisation d'un Layout approprié.
    Dans le cas d'un formulaire, le plus approprié fourni nativement dans java est le GridBagLayout, une peu complexe au premier abord, il permet une grande variété dans le positionnement des composants.

    A noter qu'il existe des développeurs externes ayant créé leurs propres layouts. Dans le cas des formulaires (et même plus général), on peut citer le FormLayout JGoodies et le MigLayout
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

Discussions similaires

  1. [WD14] deplacer des objet sur une fenetre
    Par ehui_kouakess dans le forum WinDev
    Réponses: 4
    Dernier message: 09/10/2009, 14h30
  2. Dock des objets sur une fenêtre
    Par digital prophecy dans le forum Powerbuilder
    Réponses: 2
    Dernier message: 10/08/2006, 17h14
  3. (EXCEL) Effacer des images gif insérées sur une feuille ?
    Par romo3 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/08/2005, 21h31
  4. MapX, Ajouter des bmp et jpeg sur une carte ...
    Par rorodopuis dans le forum C++Builder
    Réponses: 2
    Dernier message: 25/07/2005, 09h07
  5. Aide sur une fenetre
    Par Ray-j dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 29/11/2002, 08h51

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