JAVA ihm (positionnement de composants)

Résolu/Fermé
betsprite - 7 janv. 2010 à 17:02
 betsprite - 7 janv. 2010 à 17:44
Bonjour,

J'aimerais réaliser l'interface suivante :


----------------------------------------------------------------------------------------------------------------------------------

TITRE
(centré et non collé au haut de la fenêtre ... pas possible en BorderLayout pour un contentPane)


Se connecter :

Login : (zone de texte)

Mot de passe : (zone de texte) (JButton("Valider"))





S'inscrire :

Identifiant : (zone de texte) Mot de passe : (zone de texte)

Nom : (zone de texte) Prénom : (zone de texte)

Date de naissance : (zone de texte) E-mail : (zone de texte)

(JButton("S'enregistrer"))


----------------------------------------------------------------------------------------------------------------------------------

Voila en gros. Je n'arrive pas à bien disposer mes composants et quels Layouts choisir ...

J'éspère que vous pourrez m'aider :)

Merci et bonne journée !
A voir également:

4 réponses

varfendell Messages postés 3256 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 8 février 2020 699
7 janv. 2010 à 17:42
et bien tu regarde en fonction de la paille de ta fenetre:

par exemple, ta fenetre en x vaut 1000, la taille de ton composant en x vaut 100, alors pour etre centré, ton composant devra etre mis en x = (1000-100)/2 = 450

Et si tu veut remedier au probleme de l'agrandissment de la fenetre (essaye de l'agrandire manuellement, tu vas voir, les composant ne bouge pas et sa fait plus tres beau), tu peut donner une taille fixe a ta fenetre et dire qu'on ne peut pas la redimenssionner. Pour cela, tu tape:

		frame = new Lancement ("Nom de ta fenetre");  //création de la fenetre
		frame.setLocationRelativeTo(null);
		frame.setResizable(false);  //empeche le redimenssionement de ta fenetre
		frame.setSize(550, 650); //taille en x et y de ta fenetre
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
1
Ok nickel ! :p

Merci beaucoup pour ton aide rapide !

Bonne fin de journée ;)
0
varfendell Messages postés 3256 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 8 février 2020 699
7 janv. 2010 à 17:17
Bonjour,

Je te conseil une méthode simple et précise:

NomPanel.setLayout(null);

en effet sans panel, c'est toi qui donne les dimension et la position de tes composants:

NomComposant.setBounds(Coordonnées en x, Coordonées en x, longueur, largeur);

Pour plus de détail, je te conseil de te rendre sur http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Component.html#setBounds(int, int, int, int)
0
Trés bien je vais essayer sa !

Un grand merci :) Bonne fin de journée !
0
Malheuresement la méthode addBounds ne semble pas fonctionner :s

Voici mon code sans erreur de compilation :

************************

import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Fenetre extends JFrame {

private JPanel pan = new JPanel();
private JLabel en_tete = new JLabel("Accéder à votre Mini-Google !");


public Fenetre(){

this.setTitle("Proxy");
this.setSize(1000, 1000);
this.setLocationRelativeTo(null);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setContentPane(pan);

pan.setLayout(null);

en_tete.setBounds(20,20,500,200);


this.setVisible(true);
}

}

***************************

Seulement cela ne m'affiche même pas le Label. Mon contentPane est vide.

Quelque chose m'a échappé peut être ?
0
varfendell Messages postés 3256 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 8 février 2020 699
7 janv. 2010 à 17:33
oui, il te faut ensuite ajouter le conposant a ton panel:

pan.add(en_tete);

voici un exemple de code utilisant ceci:

                pnlChauffeur = new JPanel();
		pnlChauffeur.setLayout(null);
		
		lblTitre = new JLabel("Formulaire de suppression d'un Chauffeur:");
		pnlChauffeur.add(lblTitre);
		lblTitre.setBounds(200, 0, 350, 108);
		
		lblIdChauffeur = new JLabel("Entrez l'identifiant du chauffeur:");
		pnlChauffeur.add(lblIdChauffeur);
		lblIdChauffeur.setBounds(110, 100, 200, 24);
		
		tfIdChauffeur = new JTextField();
		pnlChauffeur.add(tfIdChauffeur);
		tfIdChauffeur.setBounds(300, 100, 200, 24);
		
		btnValidation = new JButton("Suivant");
		btnValidation.setActionCommand("btnValidation");
		btnValidation.addActionListener(this);
		pnlChauffeur.add(btnValidation);
		btnValidation.setBounds(420, 550, 100, 30);
		
		btnRetour = new JButton("Retour");
		btnRetour.setActionCommand("btnRetour");
		btnRetour.addActionListener(this);
		pnlChauffeur.add(btnRetour);
		btnRetour.setBounds(20, 550, 100, 30);
0
Ha oui je suis bête ! j'avais oublié de l'ajouter -_-.

Merci beaucoup !

Juste une dernier petite question :

Admettons que j'utilise addBounds pour le mettre a une hauteur et une largeure precise et un y precis.
Mais qu'une fois ces trois données entrées, je veuille pour x, centrer mon composant. Comment dois-je faire?
0