JavaWorld

Wednesday, April 09, 2008

Créer des interfaces utilisateur avec Swing

Nous utilisons ici les composants les plus communs d'une interface.
Leur traduction en Swing :
- Une fenêtre principale (avec boutons d'agrandissement, réduction, fermeture…) : JFrame
- Un plan rectangulaire : JPanel
- Un bouton : Jbutton
- Une zone texte : Jlabel


Le JPanel est un container intermédiaire qui va se charger de contenir le label et le bouton.
Le JButton et le JLabel sont des composants atomiques.
Autres exemples : zone de texte éditable (JTextField), table (JTable), etc…
Diagramme de hiérarchie (contenance) – arborescence :
Remarque : tous les container de tête dans la hiérarchie (JFrame, JWindow…) contiennent un container
intermédiaire qui se charge de contenir les fils (contentPane)



import javax.swing.*;
import java.awt.*;
public class Exemple1 {
public static void main(String[] args) {
JFrame frame = new JFrame(”exemple”);
JButton button = new JButton(”clic clic”);
JLabel label = new JLabel(”un petit texte”);
JPanel pane = new JPanel();
pane.add(button);
pane.add(label);
frame.getContentPane().add(pane, BorderLayout.CENTER);
}
}


Þ Ajouter au panel avec une contrainte
frame.getContentPane().add(pane, BorderLayout.CENTER);
Exercice : modifier l'exemple pour avoir :
Remarque : définir le layout du JPanel avec pane.setLayout(new BorderLayout())


JFrame frame = new JFrame("exemple");
JButton button = new JButton("clic clic");
JLabel label = new JLabel("un petit texte");
JButton button2 = new JButton("deuxieme bouton");
JPanel pane = new JPanel();
pane.setLayout(new BorderLayout());
pane.add(button, BorderLayout.NORTH);
pane.add(label, BorderLayout.CENTER);
pane.add(button2, BorderLayout.SOUTH);
frame.getContentPane().add(pane, BorderLayout.CENTER);
frame.show();

Þ Créer le layout en le définissant :
pane.setLayout(new GridLayout(3,2));
Exercice : modifier l'exemple pour avoir :
Remarque : l'ajout ne nécessite plus de contrainte : pane.add(button);


JFrame frame = new JFrame("exemple");
JButton button = new JButton("clic clic");
JLabel label = new JLabel("un petit texte");
JButton button2 = new JButton("deuxieme bouton");
JButton button3 = new JButton("troisieme bouton");
JButton button4 = new JButton("quatrieme bouton");
JPanel pane = new JPanel();
pane.setLayout(new GridLayout(3,2));
pane.add(button);
pane.add(label);
pane.add(button2);
pane.add(button3);
pane.add(button4);
frame.getContentPane().add(pane, BorderLayout.CENTER);
frame.show();

0 Comments:

Post a Comment

<< Home