tp1 Javaavancee Correction 1

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 6

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 (BorderLayout.NORTH)
Version1 : Instance JFrame
Version 2 : Héritage (extends JFrame)

Exercice 2 : JFrame
Composants :
JMenuBar vert
Un JLabel contenant le texte BC2 ISAEG 201-2022 (BorderLayout.NORTH)
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 java.awt.*;
import java.awt.event.*; //Sans thread on fait appel directement à la méthode
import javax.swing.*; createAndShowGUI();
}
public class FrameDemo1 { }
private static void createAndShowGUI() { Exercice 2
//Créer et configurer la fenetre. //Méthode1
JFrame frame = new JFrame("FrameDemo"); import java.awt.*;
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); import java.awt.event.*;
import javax.swing.*;
JLabel myLabel = new JLabel("BC2 ISAEG 2021-2022");
myLabel.setPreferredSize(new Dimension(275, 200)); public class FrameDemoMenuBar1 {
frame.getContentPane().add(myLabel, private static void createAndShowGUI() {
BorderLayout.NORTH); //Créer et configurer la fenetre.
//Afficher la fenetre. JFrame frame = new JFrame("FrameDemoMenuBar1");
frame.pack();
frame.setVisible(true); frame.setDefaultCloseOperation(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 greenMenuBar.setOpaque(true);
thread. greenMenuBar.setBackground(new Color(154, 165,
javax.swing.SwingUtilities.invokeLater(new Runnable() { 127));
public void run() { greenMenuBar.setPreferredSize(new Dimension(200,
createAndShowGUI(); 20));
} frame.setJMenuBar(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(); myLabel.setOpaque(true);
} myLabel.setBackground(new Color(248, 213, 131));
} myLabel.setPreferredSize(new Dimension(200, 180));
//Méthode 2 frame.getContentPane().add(myLabel,
BorderLayout.NORTH);
import java.awt.*; //Afficher la fenetre.
import java.awt.event.*; frame.pack();
import javax.swing.*; frame.setVisible(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.
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
JLabel myLabel = new JLabel("BC2 ISAEG 2021-2022"); createAndShowGUI();
myLabel.setPreferredSize(new Dimension(175, 100)); }
this.getContentPane().add(myLabel, });
BorderLayout.NORTH); //Sans thread on fait appel directement à la méthode
createAndShowGUI();
//Afficher la fenetre. }
this.pack(); }
this.setVisible(true);
} //Méthode2

public static void main(String[] args) { import java.awt.*;

Ali ZIDANII 3
POO Avancée BC2

import java.awt.event.*; JLabel titre=new JLabel("Titre");


import javax.swing.*; 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();
this.setDefaultCloseOperation(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(); this.setSize(600,400);
greenMenuBar.setOpaque(true);
greenMenuBar.setBackground(new Color(154, 165, addWindowListener(new WindowAdapter(){public
127)); void windowClosing(WindowEvent e){System.exit(0);}});
greenMenuBar.setPreferredSize(new Dimension(200, ajoutlivre.setLayout(new GridLayout(4, 1, 0, 5));
20)); ajoutlivre.add(titre);ajoutlivre.add(saisieTitre);
this.setJMenuBar(greenMenuBar); ajoutlivre.add(auteur); ajoutlivre.add(saisieAuteur);
//Creer un premier Label avec un Background Jaune ajoutlivre.add(isbn); ajoutlivre.add(saisieISBN);
JLabel myLabel = new JLabel("BC2 ISAEG 2021-2022"); //on utilise le composant Box pour ajuster
myLabel.setOpaque(true); l'affichage
myLabel.setBackground(new Color(248, 213, 131)); Box ajouterBox=Box.createVerticalBox();
myLabel.setPreferredSize(new Dimension(200, 180)); ajouterBox.add(ajouter);
this.getContentPane().add(myLabel, ajoutlivre.add(ajouterBox);
BorderLayout.NORTH);
ajoutlivre.setBorder(BorderFactory.createTitledBorder("Ajou
//Afficher la fenetre. t d'un livre"));
this.pack(); this.add( ajoutlivre,BorderLayout.NORTH);
this.setVisible(true); //on utilise le composant Box pour ajuster l'affichage
} listlivre.setLayout(new GridLayout(2, 1, 0, 3));
Box livreBox=Box.createVerticalBox();
public static void main(String[] args) { livreBox.add(livres);
//Appeler la méthode CreateAndShowGUI() dans un livreBox.add(quitter);
thread. listlivre.add(livreBox);
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() { listlivre.setBorder(BorderFactory.createTitledBorder("Liste
FrameDemoMenuBar2 frame = new des livres"));
FrameDemoMenuBar2(); this.add( listlivre,BorderLayout.CENTER);
} ajouter.addActionListener(this);
}); quitter.addActionListener(this);
//Sans thread on fait appel directement à la méthode }
createAndShowGUI(); public void actionPerformed (ActionEvent e)
} {
} if (e.getSource()==ajouter)
Exercice 3 {
import java.awt.*; livres.append(saisieTitre.getText()+"
import java.awt.event.*; "+saisieAuteur.getText()+" "+saisieISBN.getText()+"\n");
import javax.swing.*; }
else if (e.getSource()==quitter)
class PanelDemo1 extends JFrame implements System.exit(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); test.setVisible(true);
JPanel ajoutlivre= new JPanel(); }
JPanel listlivre=new JPanel(); }
JLabel auteur=new JLabel("Auteur"); Exercice 4

4
Ali ZIDANII
POO Avancée BC2

import java.awt.*; if (e.getSource()==ajouter)


import java.awt.event.*; {
import javax.swing.*; livres.append(saisieTitre.getText()+"
"+saisieAuteur.getText()+" "+saisieISBN.getText()+"\n");
class PanelDemo2 extends JFrame implements }
ActionListener else if (e.getSource()==quitter)
{ System.exit(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(); test.setVisible(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 javax.swing.BorderFactory;
JButton afficher=new JButton("Afficher"); import javax.swing.Box;
import javax.swing.JButton;
JTextArea livres =new JTextArea(); import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
public PanelDemo2() import javax.swing.ImageIcon;
{super("Saisie de l'auteur du livre"); import javax.swing.JLabel;
this.setSize(600,400); import javax.swing.JPanel;
import javax.swing.JFrame;
addWindowListener(new WindowAdapter(){public import javax.swing.JTextArea;
void windowClosing(WindowEvent e){System.exit(0);}}); import javax.swing.JTextField;
ajoutlivre.setLayout(new GridLayout(4, 1, 0, 5)); import javax.swing.LookAndFeel;
ajoutlivre.add(titre);ajoutlivre.add(saisieTitre); import javax.swing.border.*;
ajoutlivre.add(auteur); ajoutlivre.add(saisieAuteur); import java.awt.event.*;
ajoutlivre.add(isbn); ajoutlivre.add(saisieISBN);
//on utilise le composant Box pour ajuster import javax.swing.*;
l'affichage import javax.swing.*;
Box ajouterBox=Box.createVerticalBox(); import javax.swing.plaf.metal.MetalLookAndFeel;
ajouterBox.add(ajouter);
ajoutlivre.add(ajouterBox);
import java.awt.*;
ajoutlivre.setBorder(BorderFactory.createTitledBorder("Ajou
t d'un livre")); public class TabbedPaneDemo1 extends JPanel implements
this.add( ajoutlivre,BorderLayout.NORTH); ActionListener{
//on utilise le composant Box pour ajuster l'affichage JTextField saisieAuteur=new JTextField(20);
listlivre.setLayout(new GridLayout(2, 1, 0, 3)); JTextField saisieTitre=new JTextField(20);
Box livreBox=Box.createVerticalBox(); JTextField saisieISBN=new JTextField(20);
livreBox.add(livres); JPanel ajoutlivre= new JPanel();
JScrollPane scrollPane = new JScrollPane(livres); JPanel listlivre=new JPanel();
listlivre.add(scrollPane); JLabel auteur=new JLabel("Auteur");
livreBox.add(quitter); JLabel titre=new JLabel("Titre");
listlivre.add(livreBox); JLabel isbn=new JLabel("ISBN");
JButton ajouter=new JButton("Ajouter");
listlivre.setBorder(BorderFactory.createTitledBorder("Liste JButton quitter=new JButton("Quitter");
des livres")); JButton afficher=new JButton("Afficher");
this.add( listlivre,BorderLayout.CENTER); JTextArea livres =new JTextArea();
ajouter.addActionListener(this); public TabbedPaneDemo1() {
quitter.addActionListener(this);
} ImageIcon icon = new ImageIcon("");
public void actionPerformed (ActionEvent e) JTabbedPane tabbedPane = new JTabbedPane();
{ Component panel1 = contenuPremierOnglet();

5
Ali ZIDANII
POO Avancée BC2

tabbedPane.addTab("Ajouter Livres",icon,panel1, {
"Ajouter Livres"); livres.append(saisieTitre.getText()+"
tabbedPane.setSelectedIndex(0); "+saisieAuteur.getText()+" "+saisieISBN.getText()+"\n");
Component panel2 = contenuDeuxiemeOnglet(); }
tabbedPane.addTab("Rechercher Livres", icon, panel2, else if (e.getSource()==quitter)
"Rechercher Livres"); System.exit(0);
Component panel3 = contenuTroisiemeOnglet(); }
tabbedPane.addTab("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); frame.addWindowListener(new WindowAdapter() {
} public void windowClosing(WindowEvent e)
{System.exit(0);}
public Component contenuPremierOnglet() { });
frame.getContentPane().add(new TabbedPaneDemo1(),
JPanel panel= new JPanel(); BorderLayout.CENTER);
panel.setLayout(new BorderLayout()); frame.setSize(600,300);
ajoutlivre.setLayout(new GridLayout(4, 1, 0, 5)); frame.setVisible(true);
ajoutlivre.add(titre);ajoutlivre.add(saisieTitre);
ajoutlivre.add(auteur); ajoutlivre.add(saisieAuteur); }
ajoutlivre.add(isbn); ajoutlivre.add(saisieISBN);
//on utilise le composant Box pour ajuster }
l'affichage
Box ajouterBox=Box.createVerticalBox();
ajouterBox.add(ajouter);
ajoutlivre.add(ajouterBox);

ajoutlivre.setBorder(BorderFactory.createTitledBorder("Ajou
t d'un livre"));
panel.add( ajoutlivre,BorderLayout.NORTH);
//on utilise le composant Box pour ajuster l'affichage
listlivre.setLayout(new GridLayout(2, 1, 0, 3));
Box livreBox=Box.createVerticalBox();
// livreBox.add(livres);
JScrollPane scrollPane = new JScrollPane(livres);
listlivre.add(scrollPane);
livreBox.add(quitter);
listlivre.add(livreBox);

listlivre.setBorder(BorderFactory.createTitledBorder("Liste
des livres"));
panel.add( listlivre,BorderLayout.CENTER);
ajouter.addActionListener(this);
quitter.addActionListener(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 (e.getSource()==ajouter)

6
Ali ZIDANII

Vous aimerez peut-être aussi