48 0 933KB
Java Swing
1
Chapitre Java Swing • Introduction • Les composants de base • Les boutons • La saisie de texte • Les onglets • Les menus • Les gestionnaires
Introduction Dans une interface graphique, il existe deux types de composants :
Un conteneur va permettre de placer des composants, par exemple une fenêtre. Les composants atomiques sont des composants qui ne peuvent pas contenir d'autres composants, par exemple un bouton radio, un champ de texte, une image.
1. Création d’une interface graphique
4
Structure de base import javax.swing.JFrame; public class MyWindow extends JFrame {
public static void main(String[] args) throws Exception { // Start my window MyWindow myWindow = new MyWindow(); myWindow.setVisible( false ); // Code à implémenter }
}
Création d’une interface
import javax.swing.JFrame; public class MyWindow extends JFrame {
public static void main(String[] args) throws Exception { // Start my window MyWindow myWindow = new MyWindow(); myWindow.setVisible( false ); // Code à implémenter JFrame F = new JFrame(); F.setTitle("une interface"); F.setSize(320,150);F.setVisible(true); } }
2. Ajout de composants dans l’interface graphique
7
2.1 La classe JFrame
8
JRootPane
Tous les composants associés à un objet JFrame sont gérés par un objet de la classe JRootPane.
Le Border Layout
Les interfaces Graphiques Le gestionnaire de mise en forme, Border Layout, offre la possibilité de placer les composants dans une zone géographique. C'est à dire, le conteneur est divisé en cinq parties : - Nord ( North ) - Sud ( South) - Est (East) - Ouest ( West) - Centre ( Center)
MenuBar : 1 onglet import import import import import
Le menuBar permet d'attacher un menu à la JFrame.
javax.swing.JButton; javax.swing.JFrame; javax.swing.JMenu; javax.swing.JMenuBar; javax.swing.JMenuItem;
JMenuBar menuBar = new JMenuBar(); f.setJMenuBar(menuBar); JMenu menu = new JMenu("Fichier"); menu.add(menu); menuBar.add(menu); f.setVisible(true);
public class MyWindow extends JFrame { public static void main(String[] args) throws Exception {
// Start my window MyWindow myWindow = new MyWindow(); myWindow.setVisible( true ); // Code à implémenter
JFrame f = new JFrame("ma fenetre"); f.setSize(300,100); JButton b =new JButton("Mon bouton"); f.getContentPane().add(b);
} }
JFrame : icone
La méthode setIconImage() permet de modifier l'icône de la JFrame.
import javax.swing.*; public class MyWindow extends JFrame { public static void main(String[] args) throws Exception { // Start my window MyWindow myWindow = new MyWindow(); myWindow.setVisible( true ); // Code à implémenter JFrame f = new JFrame("ma fenetre"); f.setSize(300,100); JButton b =new JButton("Mon bouton"); f.getContentPane().add(b);
ImageIcon image = new ImageIcon("images/book.gif"); f.setIconImage(image.getImage()); f.setVisible(true); }
}
JFrame : évènement
La gestion des événements associés à un objet JFrame
import java.awt.event.*; import javax.swing.*;
} }; addWindowAdapter(l);
public class MyWindow extends JFrame { } public static void main(String[] args) throws Exception { // Start my window MyWindow myWindow = new MyWindow(); myWindow.setVisible( true ); // Code à implémenter JFrame f = new JFrame("ma fenetre"); f.setSize(300,100); f.setVisible(true);
WindowAdapter l = new WindowAdapter() { public void windowClosing(WindowEvent e){ System.exit(0);
private static void addWindowAdapter(WindowAdapter l) { // TODO Auto-generated method stub } }
2.2 La classe JPanel
14
JPanel
La classe JPanel est un conteneur utilisé pour regrouper et organiser des composants grâce à un gestionnaire de présentation (layout manager). Le gestionnaire par défaut d'un JPanel est un objet de la classe FlowLayout.
Le Flow Layout
•
Le gestionnaire de mise en forme FLOW LAYOUT, permet de placer les composants les uns à la suite des autres, de gauche à droite.
2.3 La classe Jlabel
17
jlabel
jlabel
JLabel Affichage texte import java.awt.*; import javax.swing.*; public class MyWindow extends JFrame {
public static void main(String[] args) throws Exception { // Start my window MyWindow myWindow = new MyWindow(); myWindow.setVisible( true );
// Code à implémenter JFrame f = new JFrame("ma fenetre"); f.setSize(400,100); JPanel pannel = new JPanel(); JLabel jLabel1 =new JLabel("Mon texte 1"); pannel.add(jLabel1);
Le composant JLabel permet d'afficher un texte et/ou une icône en précisant leur alignement. L'icône doit être au format GIF et peut être une animation dans ce format.
ImageIcon icone = new ImageIcon("images/book.gif"); JLabel jLabel2 =new JLabel(icone); pannel.add(jLabel2); JLabel jLabel3 =new JLabel("Mon texte 2",icone,SwingConstants.LEFT); pannel.add(jLabel3); f.getContentPane().add(pannel); f.setVisible(true); } }
2.4 Ajout de composants : étapes
21
Ajout de composants
Ajouter des composants • •
• • • •
Les étapes à suivre : Création d'une interface graphique Création d'un panel (Conteneur) Création des composants Ajout du panel à l'interface graphique Ajout des composants au conteneur
Exercice