Les composants Graphiques Atomiques - PowerPoint PPT Presentation

1 / 43
About This Presentation
Title:

Les composants Graphiques Atomiques

Description:

affichage. testCheck.pack();testCheck.show(); Exemple: JCheckBox. Bouton: JRadioButton ... ajout des deux composants au container de la fen tre affichage ... – PowerPoint PPT presentation

Number of Views:181
Avg rating:3.0/5.0
Slides: 44
Provided by: hafazar
Category:

less

Transcript and Presenter's Notes

Title: Les composants Graphiques Atomiques


1
Les composants Graphiques Atomiques
  • Les Labels (JLabel)
  • Zone de texte (JTextFiled)
  • Les boutons de commande (Jbutton, JCheckBox, )
  • Les listes
  • Les menus

2
Les Labels (JLabel)
  • Servent essentiellement à afficher du texte et
    des images (texte dinformation)
  • La classe utilisée est JLabel
  • Constructeurs
  • new JLabel("Text")
  • new JLabel(ImageIcon)
  • new JLabel("Text", ImageIcon, AligHorizotal)
  • setForGround(Color)
  • setFont(Font)
  • New Font(font, style, taille)

3
Exemple JLabel
// création de la fenêtre récupération de son
container et mise ajours de //son gestionnaire
demplacement JFrame JPFnew JFrame("fenêtre
sur les Jlabel") Container JCPJPF.getContentPane
() JCP.setLayout(new GridLayout(3,0,10,10)) //cr
éation des images à insérer ImageIcon image1new
ImageIcon("c\\email.gif") ImageIcon image2new
ImageIcon("c\\email.gif") //création des JLabel
selon les trois modèles JLabel textnew
JLabel("courier gras et de taille 15") JLabel
iconnew JLabel(image1,JLabel.LEFT) JLabel
texteETiconnew JLabel("je suis le texte
",image2,JLabel.LEFT) //changement des
caractéristiques de la police du
label1 text.setForeground(Color.BLUE) text.setFon
t(new Font("courier",Font.BOLD,15)) //ajout des
label au container de la fenêtre
affichage JCP.add(text) JCP.add(icon) JCP.add(te
xteETicon) JPF.pack() JPF.show()
4
Les zones de texte (1)
  • Utilisés généralement pour saisir des
    informations destinées au programme
  • Les zones texte en swing sont assurées par la
    hiérarchie suivante

5
Zone texte (2) JTextField JPasswordText
  • Destinés pour saisir du texte sur une seule ligne
  • Constructeurs
  • new JTextField(String)
  • new JTextField(String,int)
  • new JPasswordText(String)
  • new JPasswordText(String,int)
  • getText() récupère le contenue actuel du
    JTextField
  • setFont(Font)
  • setForGround(Color)

Pour JPasswordText utilisez la méthode char
getPassword() et non getText().
6
JTextArea
  • Utilisé pour afficher ou saisir du texte sur
    plusieurs ligne.
  • Constructeurs
  • new JTextArea(String)
  • new JTextArea(int ligne, int colonne)
  • setFont(Font)
  • setForground(Color)
  • Par défaut le texte est changeable
  • setEditable(false)

7
Exemple zone Texte
JLabel label1 new JLabel("JTextField") JTextFie
ld textnew JTextField("texte par
défaut") JLabel label2 new JLabel("JPasswordFiel
d") JPasswordField psTextnew
JPasswordField() JPanel panel1new JPanel(new
GridLayout(2,2)) panel1.setBorder(BorderFactory.c
reateTitledBorder( BorderFactory.createLineBorder(
Color.BLACK,3),"les zones Texte")) panel1.add(lab
el1)panel1.add(text) panel1.add(label2)panel1.a
dd(psText) JTextArea textArea new JTextArea(
"ceci est une JTextArea. " )
textArea.setEditable(false) textArea.setFont(new
Font("Serif", Font.ITALIC, 16))
textArea.setLineWrap(true) textArea.setWrapStyle
Word(true) JPanel panel2new JPanel(new
GridLayout(1,1)) panel2.setBorder(BorderFactory.
createTitledBorder( BorderFactory.createLineBorde
r(Color.BLACK,3),"JTextArea"))
panel2.add(textArea) JCP.add(panel1)JCP.add(pan
el2) JPF.pack() JPF.show()
8
Les boutons les JButton
  • utilisés pour enregistrer ou réagir au commande
    de lutilisateur.
  • Constructeur
  • new JButton()
  • New Jbutton(String)
  • New Jbutton(Icon)
  • New Jbutton(String ,Icon)
  • Peut être activé ou désactivé
  • Le JButton réagit graphiquement au clic
  • Quand il est désactivé, laction clic na aucun
    effet
  • Quelques méthodes
  • SetEnable(boolean) // change létat dactivité du
    bouton
  • Set

9
Exemple Jbutton
public static void main(String args) //
création de la fenêtre JFrame.setDefaultLookAnd
FeelDecorated(true) JFrame testButtonnew
JFrame ("exemple sur les Jbutton") Container
ctestButton.getContentPane() c.setLayout(new
FlowLayout()) //Création des trois boutons
JButton textnew JButton("je suis un boutton
séléctionnée") text.setDefaultCapable(true)
JButton textETiconnew JButton(
"texte image",new ImageIcon("c/orange.gif"))
JButton textDnew JButton("je suis un boutton
désactivé") // désactiver le bouton
textD.setEnabled(false) // ajouter les boutons
c.add(text)c.add(textETicon)c.add(textD)
testButton.initialisation() testButton.pack()t
estButton.show()
10
Les Boutons JCheckBox
  • Utilisés pour le choix des options ou des
    réponses
  • Les constructeurs
  • new JCheckBox(String,boolean)
  • new JCheckBox(Icon,boolean)
  • Les deux.
  • quelques méthodes
  • setSelected(boolean) //sélectionner loption
  • Boolean isSelected() // teste létat du bouton

11
Exemple JCheckBox
public static void main(String args) //
création de la fenêtre JFrame.setDefaultLookAn
dFeelDecorated(true) JFrame testChecknew
JFrame ("exemple sur les JCheckBox")
Container ctestCheck.getContentPane()
c.setLayout(new FlowLayout()) //Création des
Jcheckbox dans un panel JPanel listchoixnew
JPanel(new GridLayout(0,1,10,10)) JCheckBox
lunnew JCheckBox("Lunettes") JCheckBox
casnew JCheckBox("Casquette") JCheckBox
chaunew JCheckBox("Chaussures")
listchoix.add(lun)listchoix.add(cas)listchoix.ad
d(chau) // création de l'image JLabel
labelimagenew JLabel(new ImageIcon("c\\checkbox.
gif")) // ajout des checkbox et l'image dans
la fenêtre c.add(listchoix)c.add(labelimage) /
/ affichage testCheck.pack()testCheck.show()

12
Bouton JRadioButton
  • Contrairement au Jcheckbox, utilisé pour le choix
    exclusive (homme-femme etc.)
  • Nécessité de placer les choix dans un objet
    contexte ButtonGroup
  • Constructeur
  • Les mêmes que JCheckbox
  • Les opérations
  • Les mêmes que pour JCheckBox
  • ButtonGroup
  • Constructeur un seul, pas de paramètre
  • Ajouter des JRadioButton add(AbstractButton)

13
Exemple JRadioButton
public static void main(String args) //
création de la fenêtre JFrame.setDefaultLookAn
dFeelDecorated(true) JFrame testChecknew
JFrame (  exemple sur les JRadioButton
ButtonGroup") Container ctestCheck.getConte
ntPane() c.setLayout(new FlowLayout())
//Création des boutton de choix JPanel
listchoixnew JPanel(new GridLayout(0,1,10,10))
JRadioButton rosenew JRadioButton("petit
couchon Rose") JRadioButton bleunew
JRadioButton("petit couchon Bleu")
JRadioButton noirnew JRadioButton("petit couchon
Noire") listchoix.add(rose)listchoix.add(bleu
)listchoix.add(noir) //regrouper les
bouttons dans une même contexte ButtonGroup
gbnew ButtonGroup() gb.add(rose)gb.add(bleu)
gb.add(noir) // création de l'image
JLabel labelimagenew JLabel(new
ImageIcon("c\\pig.gif")) // ajout des
checkbox et l'image dans la fenêtre
c.add(listchoix)c.add(labelimage) //
affichage testCheck.pack()testCheck.show()

14
Les listes JList
  • Utilisés pour présenter à lutilisateur un
    ensemble déléments (peuvent être utilisées pour
    le choix multiple)
  • Les éléments peuvent être affichés sur plusieurs
    lignes et colonnes
  • Constructeur
  • New JList(Object) //liste immuable
  • new JList(Vector) //liste immuable
  • new JList(DefaultListModel) //liste changeable
  • Par défaut la liste est multi-modale (on peut
    sélectionner plusieurs éléments) et verticale.

15
JListe (2)
  • Changer lorientation de la liste
  • setLayoutOrientation(int)
  • Trois constantes
  • Changer le mode de sélection
  • setSelectionMode(int)
  • Trois constantes

16
JList (3)
  • Quelques méthodes
  • setModel(ListModel) //changer la liste modèle
  • Object getSelectedValue()
  • Object getSelectedValues()
  • DefaultListModel // constructeur vide
  • addElement(Object) //ajouter un élément dans la
    liste
  • int getCapacity() // retourne nombre déléments
  • .
  • Les ascenseurs
  • Ajouter des ascenseur pour permettre de gérer la
    taille de la liste.
  • Class JScrollPane
  • Constructeur JScrollPane(Component)
  • Il peut être ajouté à une zone JTextArea
  • Ajouter lobjet ascenseur à la place de la liste

17
Exemple JList
//déclaration de lobjet fenêtre et récupération
de son container .. //création d'un objet
DefaultListModel DefaultListModel lmnew
DefaultListModel() //création d'un objet Jliste
avec comme modèle liste "lm" JList listnew
JList(lm) // ajout des employés dans le modèle
de la liste "lm" lm.addElement(new
Employé("Alan", "Sommerer","Directeur")) lm.addEl
ement(new Employé("Alison","Huml",
"marketing")) lm.addElement(new
Employé("Kathy","Walrath", "comercial")) lm.addEl
ement(new Employé("Lisa","Friendly",
"marketing")) .. JLabel textnew JLabel("Quel
sont vos enployés préféré ?????") //création de
l'assenseur et on fixe sa taille JScrollPane
listScroller new JScrollPane(list) listScroller
.setPreferredSize(new Dimension(250,
80)) text.setForeground(Color.red) //ajout des
deux composants au container de la fenêtre
affichage JCP.add(text) JCP.add(listScroller)
JPF.pack()JPF.show()
18
List comboBox
  • Une liste ou un élément est sélectionné à la fois

19
exemple
20
Les menus
  • Une manière dorganiser les boutons de commande
    et les boutons doptions qui ont un intérêt pour
    lapplication.
  • exemple en image

21
Vue global de lAPI menu
22
JMenuBar
  • Chaque fenêtre peut comporter un et
  • un seul JMenuBar
  • Utilisation de la méthode de JFrame
  • setJMenuBar(JMenuBar)
  • Constructeur new JMenuBar()
  • Méthode dajout de menus
  • Add(JMenue)

23
JMenu
  • Constructeurs
  • JMenu(String)
  • JMenu(String,boolean)
  • Ajouter des des éléments
  • Add(JMenuItem)
  • fichier.addSeparator()// ajoute une ligne de
    séparation
  • Vous pouvez également ajouter des objets de type
    JMenu pour les sous-menus

24
JMenuItem
  • Ressemble à JButton (texte et icon)
  • Constructeur JMenuItem(String, Icon)
  • Les sous classes possibles
  • JRadioButtonMenuItem (regrouper dans des
    ButtonGroup)
  • JCheckBox.
  • Le même fonctionnement.

25
Exemple testons le tout
//création de la fenêtre //création dun
object JMenuBar JMenuBar menuBar new
JMenuBar() //remplacement de JMenuBar de la
fenêtre par lobjet crée fenêtre.setJMenuBar(m
enuBar) //création du Menu_1 . JMenu
jmenu1 new JMenu("JMenu_1") JMenu jmenu2new
JMenu("JMenu_2") jmenu1.add(new
JMenuItem("JMenuItem_1 sans Icon"))
jmenu1.add(new JMenuItem("JMenuItem_2 avec
Icon",new ImageIcon("c\\...gif")))
jmenu1.addSeparator() jmenu1.add(new
JRadioButtonMenuItem("JRadioButtonMenuItem",true))
jmenu1.addSeparator() jmenu1.add(new
JCheckBoxMenuItem("JCheckBoxMenuItem",true))
jmenu1.addSeparator() JMenu smnew
JMenu("Sous Menu_1") jmenu1.add(sm)
sm.add(new JMenuItem("JMenuItem_1 de Sous
Menu_1")) sm.add(new JMenuItem("JMenuItem_2
de Sous Menu_1")) //ajout des deux Menu à
lobjet "menuBar" menuBar.add(jmenu1)menuBar.
add(jmenu2) fenêtre.pack()fenêtre.show()
  • Les menus
  • Les élément de tous types et les sous menu.

26
Résumons on sait faire!!!!
  • Création de fenêtres
  • Ajout des composants graphiques dans la fenêtre
  • Organisation de la disposition des objets
    graphiques
  • On connaît les objets graphiques pour traiter le
    texte, les images, les choix, les listes et les
    boutons de commande

Comment associer les actions de lutilisateur sur
linterface graphique pour manipuler les données
de lapplication?????? ? programmation des
interfaces
27
Problématique
jean
Gilles
Philipe
Vecteur demployés
Un interpréteur dévènement graphique qui
récupère les données, crée un objet Employé et
lajoute à la liste
28
Programmation évènementielle
  • Concevoir un programme comme une entité
    normalement inactive qui réagit de façon
    particulière à chaque événement (prévu) qui
    intervient.
  • Programmer une interface consiste à associer un
    traitement à chaque objet Graphique

Tant que NON(Evt) faire Rien Selon que
Evtevt1 action1 Evtevt2 action2
Objet Graphique
evt1
application
stimuli
evt2
29
Quest ce quun événement???
  • Les événements sont des objets java
  • Un évènement graphique peut être
  • Un clic
  • Un double clic
  • Bouger la souris
  • Taper du texte
  • Fermer une fenêtre .
  • Chaque objet graphique est capable de réagir à un
    certain type dévènement

30
Les événements en java
java.lang.Object
java.util.EventObject
vos événements généraux, (pas forcément
graphiques)
Java.awt.AWTEvent
vos événements graphiques
java.awt.event.ActionEvent
Exemple tous les boutons déclenchent des
 ActionEvent 
31
méthodes lobjet évènement
  • Tous les événement sont des sous class de
    EventObject.
  • Chaque événement porte un certain nombre
    dinformation sur son contexte
  • La classe EventObject maintent un seul méthode
    hérité par tous les evènement public Object
    getSource()
  • Elle retourne une référence vers lobjet
    graphique responsable de lévénement.
  • exemple MouseEvent propose deux méthode getX() et
    getY() qui retourne les coordonnées du point où
    lévénement est arrivé

32
Gestion des événements en java  modèle par
délégation 
Événement
Listener
Source
Un événement est propagé d'une Source vers un
objet Listener (ou écouteur) en invoquant une
méthode du listener et en passant une sous-classe
de EventObject qui définit le type dévénement
qui a été engendré.
33
Gestion des événements
  • Chaque fois que lutilisateur click sur un bouton
    de commande, tape du texte ou bouge la souris.,
    un événement survient
  • Lobjet graphique concerné crée un objet
    événement de type dévénement correspondant .
  • programmer une interface graphique consiste alors
    à associer un comportement à chaque événement
    appropriés.
  • JAVA pour chaque type dévénement une
    interface Listener est associer.
  • Tous ce que vous avez à faire cest
    dimplémenter les interfaces correspondant aux
    événements souhaité.

34
Les listeners
  • Un objet listener est un objet qui implémente
    (remplit le contrat d) une interface spécifique.
  • Cette interface (ce contrat) prévoit une ou
    plusieurs méthodes qui peuvent être invoquées par
    une source dévénements.
  • Java maintient une liste dinterfaces pour chaque
    type dévènement
  • Chaque Listener reçoit une réplique identique de
    lévénement original.
  • Chaque Listener est composé dun ou plusieurs
    méthode
  • Chaque méthode prend en paramètre un objet
    événement approprié.

35
Tableau de lAPI Event et Listener
36
Exemple ActionListener
  • Exemple dune interface prédéfini par java pour
    traiter les évènements de type ActionEvent.
  • package java.awt.event
  • import java.util.EventListener
  • public interface ActionListener extends
    EventListener
  • public void actionPerformed(ActionEvent e)

37
La source
  • Tous les composants graphiques quon a vu.
  • L'objet Source émet des événements.
  • La source enregistre ses listeners par des
    méthodes setltEventTypegtListener ou
    addltEventTypegtListener.
  • Toutes les sources dévénements supportent un
    modèle multicast pour lémission plusieurs
    listeners peuvent être ajoutés pour une seule
    source.
  • L'API na aucun à priori sur l'ordre dans lequel
    les événements sont délivrés.

38
 Méthode connue sur composant inconnu 
Public Class Explosif implements ActionListener
Public Class Chronometre implements ActionListener
chronometre
Listeners
explosif
actionPerformed(ev)
actionPerformed(ev)
ActionEvent
ActionEvent
On
Le bouton ne  voit  que des ActionListener
39
Résumons
  • Les évènement sont traités par des classes qui
    implémentent des interfaces XXXListener
  • Java prévoit une interface XXXListener pour
    chaque type dévénement
  • Limplémentation des interfaces XXXListener
    représente le comportement de lapplication en
    réponse à lévénement en question.
  • Les objets des classes implémentant un Listener
    doivent être rattachés à lobjet graphique en
    question.

40
Les étapes
  • Une fois vos composants graphiques créés
  • il suffit de créer un ou plusieurs objets
    Listeners (implémentant le protocole déclarant
    une méthode de réaction à un événement)
  • de les déclarer comme listeners de vos composants
    graphiques (addActionListener.. addMouseListener)
  • et cest tout. )

41
Exemple très simple!!!!!!!!!!!
  • Écrivez une interface graphique contenant un
    bouton de commande
  • Le bouton de commande contient le chiffre 0
  • Programmer le bouton de tel façon que le chiffre
    dans le bouton sincrémente à chaque click
  • Indication utilisez linterface ActionListener

42
Solution
  • Quel est lévénement quon veux programmer??
    Click (souris)
  • Le Listener ou écouteur de lévénement click est
    linterface ActionListener.
  • Implémenter cette interface implémenter la
    méthode actionPerformed
    public class EcouteurIncré implements
    ActionListener public void
    actionPerformed(ActionEvent e)
  • Rattacher une instance de cette class à lobjet
    bouton
  • MonBouton.addActionListener(EcouteurIncré
    )

43
Plus précisément
import java.awt.event. import
javax.swing. public class EcouteurIncrémentation
implements ActionListener int i0 public
EcouteurIncrémentation() public void
actionPerformed(ActionEvent e)
System.out.println(""e.toString())
((JButton)e.getSource()).setText("click n
"i)i public class Testincrémentation
public Testincrémentation() public
static void main(String args)
JFrame.setDefaultLookAndFeelDecorated(true)
JFrame fenêtre new JFrame("fenêtre programmé")
fenêtre.setSize(300,100) JPanel pnew
JPanel() JButton incrnew JButton("click
ici") incr.setSize(20,20)
incr.addActionListener(new EcouteurIncrémentation(
)) p.add(incr) fenêtre.getContentPane().add(
BorderLayout.SOUTH,p) fenêtre.show()
Write a Comment
User Comments (0)
About PowerShow.com