JAVA ihm (positionnement de composants)
Résolu/Fermé
A voir également:
- JAVA ihm (positionnement de composants)
- Connaitre les composants de son pc - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Jeux java itel football - Télécharger - Jeux vidéo
- Waptrick java ✓ - Forum Mobile
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
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:
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);
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
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)
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)
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 ?
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 ?
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
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:
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);
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?
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?
7 janv. 2010 à 17:44
Merci beaucoup pour ton aide rapide !
Bonne fin de journée ;)