Rapport oncf

Disponible uniquement sur Etudier
  • Pages : 10 (2412 mots )
  • Téléchargement(s) : 0
  • Publié le : 15 juin 2011
Lire le document complet
Aperçu du document
Créer des interfaces utilisateurs avec Java et Swing

1

Premier exemple.

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

2

Le modèle par Container
La JFrame est uncomposant qui contient tous les autres. 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)

3

Le code de l'exemple :

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); } }

4

Agencer les composants avec les Layouts
Le layout par défaut : FlowLayout

Le plus utilisé : BorderLayout

Autres layouts : BoxLayout, GridLayout

5

Utiliser le BorderLayout
⇒ Ajouter au panel avec une contrainte frame.getContentPane().add(pane, BorderLayout.CENTER);

Exercice : modifier l'exemplepour avoir :

Remarque : définir le layout du JPanel avec pane.setLayout(new BorderLayout())

6

Solution : 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();

7

Utiliser le GridLayout
⇒ 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);

8

Solution : 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();

9

Comment agencer de façon plus riche ?
Exercice : Comment faire :

Remarque : utilisez plus d'un panel… exemple :

- panel2 - panel3

10

Solution possible :
JFrame frame = new JFrame("exemple"); JButton button1 JLabel label1 = JLabel label2 = JButton button2 JButton button3 JButton button4JButton button5 = new JButton("bouton1"); new JLabel("texte1"); new JLabel("texte2"); = new JButton("bouton2"); = new JButton("bouton3"); = new JButton("bouton4"); = new JButton("bouton5");

JPanel pane1 = new JPanel(new BorderLayout()); /* on peut spécifier le layout à la construction */ JPanel pane2 = new JPanel(new BorderLayout()); JPanel pane3 = new JPanel(new BorderLayout());pane1.add(button1, BorderLayout.EAST); pane1.add(label1, BorderLayout.WEST); pane1.add(pane2, BorderLayout.CENTER); pane2.add(button2, BorderLayout.NORTH); pane2.add(button3, BorderLayout.SOUTH); pane2.add(pane3, BorderLayout.CENTER); pane3.add(button4, BorderLayout.EAST); pane3.add(button5, BorderLayout.WEST); pane3.add(label2, BorderLayout.CENTER); frame.getContentPane().add(pane1, BorderLayout.CENTER);...
tracking img