Vous êtes sur la page 1sur 2

Université Mhamed Bougara Boumerdes, FS, DI, L3, SI-ISIL, IHM, Série 2

Mr. A Rezoug
Exercice 1
BorderLayout : Ce gestionnaire dispose les composants suivant les quatre bords du conteneur ou au centre.
BorderLayout dispose donc de cinq composants maximum dans un conteneur, deux au bords supérieur et
inférieur à leur hauteur préférée, deux aux bords gauche et droit à leur largeur préféré, et un au centre qui
occupe le reste de l'espace. Par exemple, le gestionnaire de placement par défaut de JFrame est un
BorderLayout, qui place des objets à des emplacements particuliers désignés de la fenêtre, comme
BorderLayout.NORTH, BorderLayout.SOUTH et BorderLayout.CENTER.

Ecrire le code Java qui permet d’afficher la fenêtre suivante :

Remarques.

1. Il est possible de ne pas considérer quelques zones.


2. Les instructions suivantes permettent d’ajouter l’arbre de navigation, le menu, le titre d’un panneau et sa
couleur :
 add(new JTree(new DefaultMutableTreeNode("Arbre de navigation")), BorderLayout.WEST );
 add(new JMenuBar().add(new JMenu("LE MENU")), BorderLayout.NORTH);
 panneau.setBorder(BorderFactory.createTitledBorder("Espace principal "));
 panneau.setBackground(Color.white);

Exercice 2 (TP)
CardLayout. Ce gestionnaire permet de disposer des composants suivant une pile, à la manière d'un paquet de
cartes, un seul composant étant visible à la fois. Ce gestionnaire est pratique pour créer des panneaux
contextuels qui apparaissent suivant l'évolution du programme ou suivant les choix de l'utilisateur. Avec ce
gestionnaire, lorsque vous placez votre composant dans le conteneur, vous devez identifier la carte à l'aide
d'une chaîne de caractère.
import java.awt.*; jp1 = new JPanel();
import java.awt.event.*; jp2 = new JPanel();
import javax.swing.*; jl1 = new JLabel("Card 1");
jl2 = new JLabel("Card 2");
public class CardLayoutTest extends JFrame {
private JPanel cardPanel, jp1, jp2, buttonPanel; jp1.add(jl1);
private JLabel jl1, jl2; jp2.add(jl2);
private JButton btn1, btn2; cardPanel.add(jp1, "1");
private CardLayout cardLayout = new CardLayout(); cardPanel.add(jp2, "2");

public CardLayoutTest() {
btn1 = new JButton("Show Card 1");
setDefaultCloseOperation(EXIT_ON_CLOSE);
btn1.addActionListener(new ActionListener() {
setTitle("Test med CardLayout");
public void actionPerformed(ActionEvent e) {
setBounds( 450, 200, 400, 300);
cardLayout.show(cardPanel, "1");
}
cardPanel = new JPanel(); });
buttonPanel = new JPanel();
cardPanel.setLayout(cardLayout);
btn2 = new JButton("Show Card 2");

1
btn2.addActionListener(new ActionListener() { add(buttonPanel, BorderLayout.SOUTH);
public void actionPerformed(ActionEvent e) { show();
cardLayout.show(cardPanel, "2"); }
}
}); public static void main(String[] args) {
buttonPanel.add(btn1); CardLayoutTest frame = new CardLayoutTest();
buttonPanel.add(btn2);
add(cardPanel, BorderLayout.NORTH);

Exercice 3
BoxLayout. Ce gestionnaire permet de disposer des composants suivant une même ligne, avec leur hauteur
préférée, ou une même colonne, avec leur hauteur préférée, mais avec plus de souplesse (moins de contrainte)
que le gestionnaire GridLayout. L’instruction suivante permet de choisir le sens (vertical ou horizontal)
d’apparition des composants.

 pan.setLayout(new BoxLayout(pan,
BoxLayout.Y_AXIS));

Ecrire le code Java pour afficher la fenetre suivante :

Exercice supplémentaire
En suivant les trois schémas en bas à gauches, utilisez les panneaux nécessaires pour concevoir la fenêtre de la
figure à droite.

GridLayout. Le gestionnaire GridLayout permet de disposer les différents composants suivant une grille
régulière, un peu à la manière des lignes et des colonnes d'un tableur, chaque composant individuel occupant
alors une cellule. Toutes les lignes et les colonnes de la grille sont de taille identique. Le gestionnaire de
placement GridLayout convient donc particulièrement bien aux objets de même dimension. Les composants
sont affectés aux différentes cases, en fonction de l'ordre dans lequel nous les ajoutons au conteneur (le
parcours se fait d'abord suivant les lignes). Il est possible que les dernières cases soient vides.

Vous aimerez peut-être aussi