TUTORIEL JAVA 
Java : combiner les gestionnaires d'interface -
Java propose de nombreuses possibilités de création d'interface, mais isolées elles sont loin d'être idéales. Il suffit alors de les imbriquer pour obtenir ce que l'on souhaite... (01/07/2004)

 

Nous avons donc vu successivement trois des principaux gestionnaires d'interface de Java : FlowLayout, GridLayout et BorderLayout (il en existe deux autres au sein d'AWT, CardLayout et GridBagLayout). Relativement simples à appliquer, ils montrent aussi rapidement leurs limites dès que l'on veut construire une interface plus complexe. Rares sont les applications ne se servant que d'un type de gestionnaire.

Ce problème n'en est pas un car Java a tout prévu : il est possible de combiner plusieurs gestionnaires au sein d'une même interface, en ajoutant des conteneurs JPanel à un conteneur principal.
Plus clairement, nous allons imbriquer les gestionnaires. Par exemple, un GridLayout de 2*3 peut contenir six composants graphiques, ou tout autant de gestionnaires. Pareillement, un BorderLayout peut répartir cinq gestionnaires...

Dans notre exemple, le gestionnaire "de base" est un BorderLayout, au sein duquel nous imbriquons un GridLayout, un FlowLayout et quelques composants graphiques, pour obtenir ceci :

 



import javax.swing.*;
import java.awt.*;

public class Multi
  {
  public static void main(String[] args)
    {
    JFrame myFrame = new JFrame();

    JPanel panelDroite = new JPanel();
    panelDroite.setLayout(new GridLayout(2,3));
    panelDroite.add(new Button("1"));
    panelDroite.add(new Button("2"));
    panelDroite.add(new Button("3"));
    panelDroite.add(new Button("4"));
    panelDroite.add(new Button("5"));
    panelDroite.add(new Button("6"));

    JPanel panelBas = new JPanel();
    panelBas.add(new JCheckBox("Métro"));
    panelBas.add(new JCheckBox("Boulot"));
    panelBas.add(new JCheckBox("Dodo"));

    JPanel panelPrincipal = new JPanel();
    panelPrincipal.setLayout(new BorderLayout());
    panelPrincipal.add(new JLabel("Quel étage ?"), BorderLayout.WEST);
    panelPrincipal.add(panelBas, BorderLayout.SOUTH);
    panelPrincipal.add(panelDroite, BorderLayout.CENTER);
    
    myFrame.setContentPane(panelPrincipal);
    myFrame.setTitle("Where do we go from here ?");
    myFrame.setBounds(100,100,300,200);
    myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    myFrame.setVisible(true);
    }
  }



  Forum

Réagissez dans les forums de JDN Développeurs

Après avoir créé le cadre principal, nous créons trois panels (panelDroite, panelBas et panelPrincipal). Dans ce dernier, nous indiquons un des deux premiers dans un emplacement normalement occupé par un composants graphique (indiqué en gras). Ceci fait, ce panel principal est attaché au cadre, et nous définissons quelques détails cosmétiques.

 
Xavier Borderie, JDN Développeurs
 
Accueil | Haut de page
 
 





Quand achetez-vous le plus en ligne ?
Du lundi au vendredi
Le samedi
Le dimanche

Tous les sondages