Redimensionner tous les composants d'une fenetre
Bonjour,
en cherchant sur le forum, j'ai trouvé plusieurs topics traitant de ce sujet, mais malheureusement aucun n'a pu m'aider dans mon problème:
comment faire pour que lorsque l'on redimensionne une fenêtre, tous les composants se redimensionnent aussi ?
J'ai une JFrame qui contient 1 JPanel principal qui va lui-même contenir 2 JPanels (ces 2 JPanels sont obtenus par des classes qui dessinent des rectangles), j'utilise un GridLayout à 2 lignes et 1 colonne (1er rectangle issu du 1er JPanel en haut, et l'autre en bas), voici une partie de mon code :
Code:
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
| /** Classe contenant le code qui gere l'aspect general de la fenetre de l'application **/
import javax.swing.*;
import java.awt.*;
public class FenetrePrincipale extends JFrame
{
//Constructeur
public FenetrePrincipale()
{
super();
build(); //on initialise la fenetre
}
private void build()
{
setTitle("Deux rectangles");
setSize(800,700);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setContentPane(buildContentPane());
}
private JPanel buildContentPane()
{
JPanel panneau_princ = new JPanel();
panneau_princ.setLayout(new GridLayout(2,1));
panneau_princ.setBackground(Color.GREEN);
CamionDeCote panneau1 = new Rectangle1();
CamionDeFace panneau2 = new Rectangle2();
panneau_princ.add(panneau1);
panneau_princ.add(panneau2);
return panneau_princ;
}
} |
Mon problème est que quand j'agrandis ou diminue ma fenêtre, les composants (à savoir les 2 rectangles) gardent les mêmes dimensions...
Faut-il que je modifie les dimensions de mes rectangles à chaque fois que la JFrame est agrandie (en utillisant componentResized(ComponentEvent e) ) ?
Pourtant, d'après ce que j'ai lu, l'utilisation d'un gestionnaire de disposition devrait permettre le redimensionnement automatique des composants ?
Merci d'avance pour votre aide.
quelques petites précisions
Re,
en changeant les couleurs de fonds et les tailles de mes JPanel et en essayant avec un BorderLayout, j'ai l'impression que ce sont mes rectangles (ceux qui sont dessinés dans les JPanel) qui sont "figés" : quand je redimensionne la fenêtre, je vois les JPanel changer (leur dimensions changent), mais par contre les rectangles qui y sont dessinés à l'intérieur ne changent ni de position, ni de dimension...
Pourtant, je dessine ces rectangles dans des JPanels, et ces JPanels sont bien modifiés eux...
Si quelqu'un a une idée, elle sera la bienvenue :)
Merci d'avance