Une applet a du faire apparaître une petite fenêtre surgissante. Vous pouvez essayer de l'agrandir. Vous verrez que l'espace entre le "bouton2" et le Jlabel "bonjour" s'agrandit en conséquence. En étudiant le programme, vous verrez pourquoi. Les boutons n'ont pas d'action.
Notre exemple pourrait servir si on voulait créer une application avec une série de boutons ou d'autres sous-composants mis les uns en-dessous des autres sur le côté droit de l'application.
Le gestionnaire de répartition BoxLayout permet de mettre des composants en ligne ou en colonne. Contrairement au GridLayout qui fait l'objet de l'exemple suivant, les sous-composants ne sont pas obligés d'avoir tous la même largeur et la même hauteur. Ce gestionnaire de répartition offre beaucoup de fonctionnalités ; notre exemple vous en donne un aperçu. Ivi, nous choisissons une disposition verticale.
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.BorderFactory;
import java.awt.Dimension;
import java.awt.BorderLayout;
import java.awt.Color;
public class PanneauAvecBoutons extends JFrame {
PanneauAvecBoutons() {
JButton bouton1 = new JButton("bouton1");
JButton bouton2 = new JButton("bouton2");
JLabel message = new JLabel("Bonjour");
JPanel panneau = new JPanel();
Box panneauBouton = Box.createVerticalBox();
panneau.setPreferredSize(new Dimension(100, 0));
panneau.setBackground(Color.BLUE);
add(panneau, BorderLayout.CENTER);
panneauBouton.add(bouton1);
panneauBouton.add(Box.createVerticalStrut(20));
panneauBouton.add(bouton2);
panneauBouton.add(Box.createGlue());
panneauBouton.add(message);
panneauBouton.setBorder(BorderFactory.createLineBorder(Color.RED));
add(panneauBouton,BorderLayout.EAST );
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocation(200, 300);
pack(); setVisible(true);
}
}
class EssaiPanneauAvecBoutons {
public static void main(String[] arg) {
new PanneauAvecBoutons();
}
}
Vous pouvez trouver ici :
JPanel panneauBouton = new JPanel();
panneauBouton.setLayout(new BoxLayout(panneauBouton, BoxLayout.Y_AXIS));