Vous êtes sur la page 1sur 18

UNIVERSITE CHOUAIB DOUKKALI

ECOLE NATIONALE DES SCIENCES APPLIQUEES D’EL


JADIDA

Programmation Orientée Objet


Langage JAVA

CHERIF Walid

Année universitaire 2021/2022


Programmation Orientée Objet

Programmation Orientée Objet


Programmation Orientée Objet

1 – Buttons
la classe JButton est issue du package javax.swing

Créons:
1. une classe contenant une méthode main
Fenetre fen= new Fenetre();
2. une classe héritée de Jframe : Fenetre
Dans la classe Fenetre, créons une variable d'instance de type JPanel
et une autre de type JButton.
JPanel = le content pane de notre Fenetre
Définissons le label de notre bouton et mettons-le sur le JPanel.

CHERIF Walid - Programmation Orientée Objet 3


Programmation Orientée Objet

1 – Buttons import
JButton javax.swing.JButton;
bouton = new JButton("Mon premier bouton");
import javax.swing.JFrame;
import
JButton javax.swing.JPanel;
bouton2 = new JButton();
public class Fenetre extends
bouton2.setText("Mon JFrame{
deuxième bouton");
private JPanel pan = new JPanel();
Classe Fenetre:
private JButton bouton = new JButton("Créer compte");
public Fenetre(){
this.setTitle("Gestion d'une banque");
this.setSize(600, 480);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
pan.add(bouton);
this.setContentPane(pan);
this.setVisible(true);
}
} CHERIF Walid - Programmation Orientée Objet 4
Programmation Orientée Objet

1 – Buttons

import javax.swing.JButton;
Le bouton est centré sur votre conteneur: car le JPanel gère la mise en page.
import javax.swing.JFrame;
Maintenant, on va utiliser le content pane d'une Jframe:
public class
On va Fenetre
appeler extends Jframe
la méthode {
getContentPane() :
private JButton
nousbouton = newnos
ajouterons JButton("Créer
composants compte");
au content pane qu'elle retourne
public Fenetre(){
this.setTitle ("Gestion d'une banque");
this.setSize(600, 480);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
//On ajoute le bouton au content pane de la Jframe
this.getContentPane().add(bouton);
this.setVisible(true);
}}
CHERIF Walid - Programmation Orientée Objet 5
Programmation Orientée Objet

2 – layout managers
Permettent de gérer la position des éléments sur la fenêtre.
Tous ces layout managers se trouvent dans le package java.awt.

L'objet BorderLayout:
placer les composants dans des zones du conteneur: haut, droite…

CHERIF Walid - Programmation Orientée Objet 6


Programmation Orientée Objet

import java.awt.BorderLayout; import javax.swing.JButton; import javax.swing.JFrame;

public class Fenetre extends JFrame{


public Fenetre(){

//On définit le layout à utiliser sur le content pane
this.setLayout(new BorderLayout());
//On ajoute le bouton au content pane de la JFrame
//Au centre
this.getContentPane().add(new JButton("CENTER"), BorderLayout.CENTER);
//Au nord : NORTH
//Au sud : SOUTH
//À l'ouest : WEST
//À l'est : EAST
this.setVisible(true);
} } CHERIF Walid - Programmation Orientée Objet 7
Programmation Orientée Objet

2 – layout managers
L'objet GridLayout:
placer les composants dans des zones du conteneur: haut, droite…

CHERIF Walid - Programmation Orientée Objet 8


Programmation Orientée Objet

import java.awt.GridLayout; import javax.swing.JButton; import javax.swing.JFrame;

public class Fenetre extends JFrame{


public Fenetre(){

//On définit le layout à utiliser sur le content pane
//Trois lignes sur deux colonnes
this.setLayout(new GridLayout(3, 2));
//On ajoute le bouton au content pane de la JFrame
this.getContentPane().add(new JButton("1"));

this.getContentPane().add(new JButton("5"));
this.setVisible(true);
} }
CHERIF Walid - Programmation Orientée Objet 9
Programmation Orientée Objet

On peut définir le nombre de lignes et de colonnes :


GridLayout gl = new GridLayout();
gl.setColumns(2);
gl.setRows(3);
this.setLayout(gl);

Comme on peut ajouter de l'espace entre les colonnes et les lignes


GridLayout gl = new GridLayout(3, 2);
//Cinq pixels d'espace entre les colonnes (Horizontal)
gl.setHgap(5);
gl.setVgap(5);

CHERIF Walid - Programmation Orientée Objet 10


Programmation Orientée Objet

import 2
java.awt.BorderLayout;
– layout managers
import java.awt.CardLayout;
import java.awt.Color;
L'objet CardLayout:
import java.awt.event.ActionEvent;
gérer les conteneurs comme un tas de cartes
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Fenetre extends JFrame{

CardLayout cl = new CardLayout();


JPanel content = new JPanel();
//Liste des noms de nos conteneurs pour la pile de cartes
String[] listContent = {"CARD_1", "CARD_2", "CARD_3"};
int indice = 0; CHERIF Walid - Programmation Orientée Objet 11
Programmation Orientée Objet

public Fenetre(){
………

//On crée trois conteneurs de couleur différente


JPanel card1 = new JPanel();
card1.setBackground(Color.blue);
JPanel card2 = new JPanel();
card2.setBackground(Color.red);
JPanel card3 = new JPanel();
card3.setBackground(Color.green);

JPanel boutonPane = new JPanel();


JButton bouton = new JButton("Contenu suivant");
//Définition de l'action du bouton
bouton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
//on passe au prochain conteneur de la pile
cl.next(content);
} }); CHERIF Walid - Programmation Orientée Objet 12
Programmation Orientée Objet

JButton bouton2 = new JButton("Contenu par indice");


//Définition de l'action du bouton2
bouton2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){

CHERIF Walid - Programmation Orientée Objet 13


Programmation Orientée Objet

if(++indice > 2)
indice = 0;
//on passe au conteneur correspondant au nom fourni en paramètre
cl.show(content, listContent[indice]);
} });
boutonPane.add(bouton);
boutonPane.add(bouton2);
//On définit le layout
content.setLayout(cl);
//On ajoute les cartes à la pile avec un nom pour les retrouver
content.add(card1, listContent[0]);
content.add(card2, listContent[1]);
content.add(card3, listContent[2]);

this.getContentPane().add(boutonPane, BorderLayout.NORTH);
this.getContentPane().add(content, BorderLayout.CENTER);
this.setVisible(true);
}
} CHERIF Walid - Programmation Orientée Objet 14
Programmation Orientée Objet

Déclencher une action : l'ActionListener

On va implémenter l'interface ActionListener en utilisant l’objet issu du


package javax.swing : le JLabel.

JLabel label1 = new JLabel();


label1.setText("Mon premier JLabel");
//ou
JLabel label2 = new JLabel("Mon deuxième JLabel");

CHERIF Walid - Programmation Orientée Objet 15


Programmation Orientée Objet

public class Fenetre extends JFrame {


private Panneau pan = new Panneau();
private Bouton bouton = new Bouton("mon bouton");
private JPanel container = new JPanel();
private JLabel label = new JLabel("Le JLabel");
public Fenetre(){
this.setTitle("Animation");
this.setSize(300, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
container.setBackground(Color.white);
container.setLayout(new BorderLayout());
container.add(pan, BorderLayout.CENTER);
container.add(bouton, BorderLayout.SOUTH);
container.add(label, BorderLayout.NORTH);
this.setContentPane(container);
this.setVisible(true);
go();
}} CHERIF Walid - Programmation Orientée Objet 16
Programmation Orientée Objet

public Fenetre(){
this.setTitle("Animation");
this.setSize(300, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
container.setBackground(Color.white);
container.setLayout(new BorderLayout());
container.add(pan, BorderLayout.CENTER);
container.add(bouton, BorderLayout.SOUTH);
//Définition d'une police d'écriture
Font police = new Font("Tahoma", Font.BOLD, 16);
//On l'applique au JLabel
label.setFont(police);
//Changement de la couleur du texte
label.setForeground(Color.blue);
//On modifie l'alignement du texte grâce aux attributs statiques de la classe JLabel
label.setHorizontalAlignment(JLabel.CENTER);
container.add(label, BorderLayout.NORTH);
this.setContentPane(container);
this.setVisible(true); CHERIF Walid - Programmation Orientée Objet 17
go(); }
Programmation Orientée Objet

//CTRL + SHIFT + O pour générer les imports


public class Fenetre extends JFrame implements ActionListener{
private Panneau pan = new Panneau();
private Bouton bouton = new Bouton("mon bouton");
private JPanel container = new JPanel();
private JLabel label = new JLabel("Le JLabel");

public Fenetre(){
//Ce morceau de code ne change pas
}

//Méthode qui sera appelée lors d'un clic sur le bouton


public void actionPerformed(ActionEvent arg0) {

}
}

CHERIF Walid - Programmation Orientée Objet 18

Vous aimerez peut-être aussi