Redimensionnement des composants en même temps que la fenêtre [Résolu]

yannOpenGL 141 Messages postés samedi 4 février 2012Date d'inscription 3 avril 2013 Dernière intervention - 31 mai 2012 à 10:07 - Dernière réponse : yannOpenGL 141 Messages postés samedi 4 février 2012Date d'inscription 3 avril 2013 Dernière intervention
- 31 mai 2012 à 14:28
Bonjour,

je suis entrain de créer un logiciel en Java.
Je construit mon interface sans layout afin de pouvoir placer tous mes composants où je le désire.
Mon problème intervient lorsque je modifie la taille de la fenêtre. La taille des composants ne change pas en même temps.

Savez-vous comment faire pour remédier à ceci ?

Merci.
Bonne journée.
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 31 mai 2012 à 13:32
3
Merci
Tout est là : http://www.javafr.com/codes/EXEMPLE-UTILISATION-GRIDBAGLAYOUT_54344.aspx

Merci cs_Julien39 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 74 internautes ce mois-ci

Commenter la réponse de cs_Julien39
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 31 mai 2012 à 10:58
0
Merci
Salut,

Il faut que tu utilises des layout, tu n'as pas le choix.

L'autre solution est d'utiliser la taille de la fenêtre pour faire tes setBounds dans la méthode paintComponent mais c'est vraiment très moche.
Commenter la réponse de cs_Julien39
cormandyr 600 Messages postés samedi 20 mai 2006Date d'inscription 8 juillet 2016 Dernière intervention - 31 mai 2012 à 11:06
0
Merci
Personnellement, je conseille toujours la librairie Forms de JGoodies...
Elle est plus simple que le GridBackLayout et te permet de faire tout et n'importe quoi... De plus leurs tutoriels sont comme je les aime, simple rapide efficace...

Forms - JGoodies
Commenter la réponse de cormandyr
yannOpenGL 141 Messages postés samedi 4 février 2012Date d'inscription 3 avril 2013 Dernière intervention - 31 mai 2012 à 11:20
0
Merci
Je suis d'accord avec toi mais avec un layout existant pour faire exactement ce qu'on veut avec les composants ça me parait compliqué.

Celui qui à l'air de laisser le plus libre est GridBagLayout d'après ce que j'ai pu lire sur internet mais ça à l'air compliqué à mettre en place.

Il y quelque chose que je ne dois pas faire correctement car lorsque je fais :
public class View extends JFrame{
 
private JPanel panelLateral = new JPanel();
 
  public View()
  {
   this.getContentPane().setLayout(new GridBagLayout());
  GridBagConstraints placementPanelLateral  = new GridBagConstraints();       
        placementPanelLateral.gridx = 20;
        placementPanelLateral.gridy = 100;
        placementPanelLateral.gridwidth = 120;
        placementPanelLateral.gridheight = 550;
        this.getContentPane().add(panelLateral,placementPanelLateral);
 
        this.setVisible(true);
    }
}


j'ai un petit carré au milieu de ma fenêtre et pas du tout le panel que je souhaiterai avoir.
Commenter la réponse de yannOpenGL
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 31 mai 2012 à 11:36
0
Merci
En effet, tu n'utilises pas le gridBagLayout comme il le faut, gridx n'est pas l'abscisse du point haut gauche du composant à placer mais l'indice du composant à placer.

Je te conseil de relire le tutoriel sur GridBagLayout, tu n'as pas tout saisi je pense.

C'est vrai que l'utilisation des layout a un coût d'entrée mais c'est vraiment le plus simple et le plus efficace.
Commenter la réponse de cs_Julien39
yannOpenGL 141 Messages postés samedi 4 février 2012Date d'inscription 3 avril 2013 Dernière intervention - 31 mai 2012 à 12:41
0
Merci
Je viens de lire le tutoriel mais je n'arrive pas du tout à placer mes composants.

Voici ce que j'ai compris :

- gridx et gridy représentent les coordonnées ((0,0) étant la "case" en haut à gauche).
- fill permet de mettre un composant sur toute la largeur et/ou toute la hauteur de la fenêtre.
- gridwidth et gridheight, je ne comprend pas vraiment. D'après ce que je pensais avoir compris, ils permettent de définir le nombre de lignes et de colonnes dans la fenêtre.
- ipadx et ipady permettent de régler la taille du composant.
- instets permet de régler la distance entre un composant et les bords de la "case".
- anchor permet de placer le composant à l'intérieur de la "case".
- weightx et weighty je ne vois pas vraiment.
Commenter la réponse de yannOpenGL
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 31 mai 2012 à 13:24
0
Merci
Attends deux minutes, je te poste un petit tutoriel
Commenter la réponse de cs_Julien39
yannOpenGL 141 Messages postés samedi 4 février 2012Date d'inscription 3 avril 2013 Dernière intervention - 31 mai 2012 à 14:28
0
Merci
Merci beaucoup, je pense avoir compris comme ça fonctionne.
Commenter la réponse de yannOpenGL

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.