POO Avancée BC2
TP1 POO Avancée
Objectifs :
Interfaces Swing
Disposition des composants ; GridLayout et BorderLayout
Containers de haut niveau : JFrame
Containers génériques : JPanel, JscrollPane
Containers de base : JButton, JMenu, JTextField
Information non éditable : JLabel
Evenements
ActionListner
Exercice 1 : JFrame
Composants :
Un JLabel contenant le texte BC2 ISAEG 201-2022 ([Link])
Version1 : Instance JFrame
Version 2 : Héritage (extends JFrame)
Exercice 2 : JFrame
Composants :
JMenuBar vert
Un JLabel contenant le texte BC2 ISAEG 201-2022 ([Link])
Version1 : Instance JFrame
Version 2 : Héritage (extends JFrame)
Ali ZIDANII 1
POO Avancée BC2
Exercice 3 : JPanel
Exercice 4 : JPanel avec JScorllPane
Exercice 5 : JTabbedPane
Ali ZIDANII 2
POO Avancée BC2
Correction TP1 POO Avancée
Exercice 1 //Appeler la méthode CreateAndShowGUI() dans un
//Méthode 1 thread.
import [Link].*;
import [Link].*; //Sans thread on fait appel directement à la méthode
import [Link].*; createAndShowGUI();
}
public class FrameDemo1 { }
private static void createAndShowGUI() { Exercice 2
//Créer et configurer la fenetre. //Méthode1
JFrame frame = new JFrame("FrameDemo"); import [Link].*;
[Link](JFrame.EXIT_ON_CLOSE); import [Link].*;
import [Link].*;
JLabel myLabel = new JLabel("BC2 ISAEG 2021-2022");
[Link](new Dimension(275, 200)); public class FrameDemoMenuBar1 {
[Link]().add(myLabel, private static void createAndShowGUI() {
[Link]); //Créer et configurer la fenetre.
//Afficher la fenetre. JFrame frame = new JFrame("FrameDemoMenuBar1");
[Link]();
[Link](true); [Link](JFrame.EXIT_ON_CLOSE);
} //Creer un Menu Bar vide avec un Background vert
public static void main(String[] args) { JMenuBar greenMenuBar = new JMenuBar();
//Appeler la méthode CreateAndShowGUI() dans un [Link](true);
thread. [Link](new Color(154, 165,
[Link](new Runnable() { 127));
public void run() { [Link](new Dimension(200,
createAndShowGUI(); 20));
} [Link](greenMenuBar);
}); //Creer un premier Label avec un Background Jaune
//Sans thread on fait appel directement à la méthode JLabel myLabel = new JLabel("BC2 ISAEG 2021-2022");
createAndShowGUI(); [Link](true);
} [Link](new Color(248, 213, 131));
} [Link](new Dimension(200, 180));
//Méthode 2 [Link]().add(myLabel,
[Link]);
import [Link].*; //Afficher la fenetre.
import [Link].*; [Link]();
import [Link].*; [Link](true);
}
public class FrameDemo2 extends JFrame{
public FrameDemo2() { public static void main(String[] args) {
//Créer et configurer la fenetre. //Appeler la méthode CreateAndShowGUI() dans un
super("FrameDemo 2"); thread.
[Link](JFrame.EXIT_ON_CLOSE); [Link](new Runnable() {
public void run() {
JLabel myLabel = new JLabel("BC2 ISAEG 2021-2022"); createAndShowGUI();
[Link](new Dimension(175, 100)); }
[Link]().add(myLabel, });
[Link]); //Sans thread on fait appel directement à la méthode
createAndShowGUI();
//Afficher la fenetre. }
[Link](); }
[Link](true);
} //Méthode2
public static void main(String[] args) { import [Link].*;
Ali ZIDANII 3
POO Avancée BC2
import [Link].*; JLabel titre=new JLabel("Titre");
import [Link].*; JLabel isbn=new JLabel("ISBN");
JButton ajouter=new JButton("Ajouter");
public class FrameDemoMenuBar2 extends JFrame{ JButton quitter=new JButton("Quitter");
public FrameDemoMenuBar2(){ JButton afficher=new JButton("Afficher");
//Créer et configurer la fenetre.
super("FrameDemoMenuBar2"); JTextArea livres =new JTextArea();
[Link](JFrame.EXIT_ON_CLOSE);
public PanelDemo1()
//Creer un Menu Bar vide avec un Background vert {super("Saisie de l'auteur du livre");
JMenuBar greenMenuBar = new JMenuBar(); [Link](600,400);
[Link](true);
[Link](new Color(154, 165, addWindowListener(new WindowAdapter(){public
127)); void windowClosing(WindowEvent e){[Link](0);}});
[Link](new Dimension(200, [Link](new GridLayout(4, 1, 0, 5));
20)); [Link](titre);[Link](saisieTitre);
[Link](greenMenuBar); [Link](auteur); [Link](saisieAuteur);
//Creer un premier Label avec un Background Jaune [Link](isbn); [Link](saisieISBN);
JLabel myLabel = new JLabel("BC2 ISAEG 2021-2022"); //on utilise le composant Box pour ajuster
[Link](true); l'affichage
[Link](new Color(248, 213, 131)); Box ajouterBox=[Link]();
[Link](new Dimension(200, 180)); [Link](ajouter);
[Link]().add(myLabel, [Link](ajouterBox);
[Link]);
[Link]([Link]("Ajou
//Afficher la fenetre. t d'un livre"));
[Link](); [Link]( ajoutlivre,[Link]);
[Link](true); //on utilise le composant Box pour ajuster l'affichage
} [Link](new GridLayout(2, 1, 0, 3));
Box livreBox=[Link]();
public static void main(String[] args) { [Link](livres);
//Appeler la méthode CreateAndShowGUI() dans un [Link](quitter);
thread. [Link](livreBox);
[Link](new Runnable() {
public void run() { [Link]([Link]("Liste
FrameDemoMenuBar2 frame = new des livres"));
FrameDemoMenuBar2(); [Link]( listlivre,[Link]);
} [Link](this);
}); [Link](this);
//Sans thread on fait appel directement à la méthode }
createAndShowGUI(); public void actionPerformed (ActionEvent e)
} {
} if ([Link]()==ajouter)
Exercice 3 {
import [Link].*; [Link]([Link]()+"
import [Link].*; "+[Link]()+" "+[Link]()+"\n");
import [Link].*; }
else if ([Link]()==quitter)
class PanelDemo1 extends JFrame implements [Link](0);
ActionListener }
{ public static void main(String arg[])
private JTextField saisieAuteur=new JTextField(20); {
private JTextField saisieTitre=new JTextField(20); PanelDemo1 test=new PanelDemo1();
private JTextField saisieISBN=new JTextField(20); [Link](true);
JPanel ajoutlivre= new JPanel(); }
JPanel listlivre=new JPanel(); }
JLabel auteur=new JLabel("Auteur"); Exercice 4
4
Ali ZIDANII
POO Avancée BC2
import [Link].*; if ([Link]()==ajouter)
import [Link].*; {
import [Link].*; [Link]([Link]()+"
"+[Link]()+" "+[Link]()+"\n");
class PanelDemo2 extends JFrame implements }
ActionListener else if ([Link]()==quitter)
{ [Link](0);
private JTextField saisieAuteur=new JTextField(20); }
private JTextField saisieTitre=new JTextField(20); public static void main(String arg[])
private JTextField saisieISBN=new JTextField(20); {
JPanel ajoutlivre= new JPanel(); PanelDemo2 test=new PanelDemo2();
JPanel listlivre=new JPanel(); [Link](true);
JLabel auteur=new JLabel("Auteur"); }
JLabel titre=new JLabel("Titre"); }
JLabel isbn=new JLabel("ISBN"); Exercice 5
JButton ajouter=new JButton("Ajouter");
JButton quitter=new JButton("Quitter"); import [Link];
JButton afficher=new JButton("Afficher"); import [Link];
import [Link];
JTextArea livres =new JTextArea(); import [Link];
import [Link];
public PanelDemo2() import [Link];
{super("Saisie de l'auteur du livre"); import [Link];
[Link](600,400); import [Link];
import [Link];
addWindowListener(new WindowAdapter(){public import [Link];
void windowClosing(WindowEvent e){[Link](0);}}); import [Link];
[Link](new GridLayout(4, 1, 0, 5)); import [Link];
[Link](titre);[Link](saisieTitre); import [Link].*;
[Link](auteur); [Link](saisieAuteur); import [Link].*;
[Link](isbn); [Link](saisieISBN);
//on utilise le composant Box pour ajuster import [Link].*;
l'affichage import [Link].*;
Box ajouterBox=[Link](); import [Link];
[Link](ajouter);
[Link](ajouterBox);
import [Link].*;
[Link]([Link]("Ajou
t d'un livre")); public class TabbedPaneDemo1 extends JPanel implements
[Link]( ajoutlivre,[Link]); ActionListener{
//on utilise le composant Box pour ajuster l'affichage JTextField saisieAuteur=new JTextField(20);
[Link](new GridLayout(2, 1, 0, 3)); JTextField saisieTitre=new JTextField(20);
Box livreBox=[Link](); JTextField saisieISBN=new JTextField(20);
[Link](livres); JPanel ajoutlivre= new JPanel();
JScrollPane scrollPane = new JScrollPane(livres); JPanel listlivre=new JPanel();
[Link](scrollPane); JLabel auteur=new JLabel("Auteur");
[Link](quitter); JLabel titre=new JLabel("Titre");
[Link](livreBox); JLabel isbn=new JLabel("ISBN");
JButton ajouter=new JButton("Ajouter");
[Link]([Link]("Liste JButton quitter=new JButton("Quitter");
des livres")); JButton afficher=new JButton("Afficher");
[Link]( listlivre,[Link]); JTextArea livres =new JTextArea();
[Link](this); public TabbedPaneDemo1() {
[Link](this);
} ImageIcon icon = new ImageIcon("");
public void actionPerformed (ActionEvent e) JTabbedPane tabbedPane = new JTabbedPane();
{ Component panel1 = contenuPremierOnglet();
5
Ali ZIDANII
POO Avancée BC2
[Link]("Ajouter Livres",icon,panel1, {
"Ajouter Livres"); [Link]([Link]()+"
[Link](0); "+[Link]()+" "+[Link]()+"\n");
Component panel2 = contenuDeuxiemeOnglet(); }
[Link]("Rechercher Livres", icon, panel2, else if ([Link]()==quitter)
"Rechercher Livres"); [Link](0);
Component panel3 = contenuTroisiemeOnglet(); }
[Link]("Emprunter Livres", icon, panel3, public static void main(String[] args)
"Emprunter Livres"); {
setLayout(new GridLayout(1, 1)); JFrame frame = new JFrame("Gestion des livres");
add(tabbedPane); [Link](new WindowAdapter() {
} public void windowClosing(WindowEvent e)
{[Link](0);}
public Component contenuPremierOnglet() { });
[Link]().add(new TabbedPaneDemo1(),
JPanel panel= new JPanel(); [Link]);
[Link](new BorderLayout()); [Link](600,300);
[Link](new GridLayout(4, 1, 0, 5)); [Link](true);
[Link](titre);[Link](saisieTitre);
[Link](auteur); [Link](saisieAuteur); }
[Link](isbn); [Link](saisieISBN);
//on utilise le composant Box pour ajuster }
l'affichage
Box ajouterBox=[Link]();
[Link](ajouter);
[Link](ajouterBox);
[Link]([Link]("Ajou
t d'un livre"));
[Link]( ajoutlivre,[Link]);
//on utilise le composant Box pour ajuster l'affichage
[Link](new GridLayout(2, 1, 0, 3));
Box livreBox=[Link]();
// [Link](livres);
JScrollPane scrollPane = new JScrollPane(livres);
[Link](scrollPane);
[Link](quitter);
[Link](livreBox);
[Link]([Link]("Liste
des livres"));
[Link]( listlivre,[Link]);
[Link](this);
[Link](this);
return panel;
}
public Component contenuDeuxiemeOnglet() {
JPanel j1=new JPanel();
return j1;
}
public Component contenuTroisiemeOnglet() {
JPanel j1=new JPanel();
return j1;
}
public void actionPerformed (ActionEvent e)
{
if ([Link]()==ajouter)
6
Ali ZIDANII