Redimensionnement des composants en même temps que la fenêtre

Résolu
yannOpenGL Messages postés 141 Date d'inscription samedi 4 février 2012 Statut Membre Dernière intervention 3 avril 2013 - 31 mai 2012 à 10:07
yannOpenGL Messages postés 141 Date d'inscription samedi 4 février 2012 Statut Membre Dernière intervention 3 avril 2013 - 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.

8 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
31 mai 2012 à 13:32
3
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
31 mai 2012 à 10:58
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.
0
cormandyr Messages postés 600 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 8 juillet 2016 11
31 mai 2012 à 11:06
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
0
yannOpenGL Messages postés 141 Date d'inscription samedi 4 février 2012 Statut Membre Dernière intervention 3 avril 2013
31 mai 2012 à 11:20
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
31 mai 2012 à 11:36
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.
0
yannOpenGL Messages postés 141 Date d'inscription samedi 4 février 2012 Statut Membre Dernière intervention 3 avril 2013
31 mai 2012 à 12:41
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.
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
31 mai 2012 à 13:24
Attends deux minutes, je te poste un petit tutoriel
0
yannOpenGL Messages postés 141 Date d'inscription samedi 4 février 2012 Statut Membre Dernière intervention 3 avril 2013
31 mai 2012 à 14:28
Merci beaucoup, je pense avoir compris comme ça fonctionne.
0
Rejoignez-nous