La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Graphical User Interface (GUI) Définition Java Quelques attributs de Component Quelques méthodes de Component Quest-ce quun conteneur Quelques méthodes.

Présentations similaires


Présentation au sujet: "Graphical User Interface (GUI) Définition Java Quelques attributs de Component Quelques méthodes de Component Quest-ce quun conteneur Quelques méthodes."— Transcription de la présentation:

1 Graphical User Interface (GUI) Définition Java Quelques attributs de Component Quelques méthodes de Component Quest-ce quun conteneur Quelques méthodes de Container Quelques composants disponibles –JFrame, JPanel, JButton Gestion simple dévènements

2 Graphical User Interface (GUI) Définition : –Un GUI est un outil graphique visuel qui permet de communiquer avec un utilisateur de votre programme. Java –Le paquetage qui contient tous les composants pour faire un bon GUI cest javax.Swing. ( )

3 Graphical User Interface (GUI) Java –Swing hérite de java.awt (abstract windowing toolkit). Cest lancienne version utilisée pour la création de GUI. –Il existe deux principales classes pour la création de GUI : Component et Container (hérite de Component) –Les classes de javax.Swing héritent toutes de la classe JComponent qui elle hérite de Container.

4 Attributs dun Component –Point position –String name –Dimension size (width, height) –Color foreGround, backGround –Font font –Cursor cursor –Boolean visible, enabled La classe Rectangle regroupe une position(x,y) et une Dimension(width, height). Quelques méthodes acceptent (ou retournent) un objet de cette classe. Quelques attributs de Component

5 Quelques méthodes concernant la position et la taille –void setBounds(intx, inty, int width, int height); –void setBounds(Rectangle rect); –void setSize(Dimension d); –void setLocation(intx, inty); –void setLocation(Point p); –void setMinimumSize(Dimension d); –void setMaximumSize(Dimension d); –void setPreferredSize(Dimension d); Et tous les GET équivalents. –Rectangle getBounds(); Retourne la position et la dimension dans un rectangle –Dimension getSize(); –Point getLocation(); –... Quelques méthodes de Component

6 Un conteneur permet de contenir plusieurs composants. Quelques méthodes concernant les conteneurs –int getComponentCount(); –Component getComponent(int index); –Component[] getComponents(); –Component add(Component comp); –void paintComponent(Graphics g); Pour quun conteneur contienne des composants, il faut utiliser la méthode add. Quelques méthodes de Container

7 JFrame –Cest une fenêtre nécessaire pour créer une application Java. –Elle hérite de la classe Container, elle peut donc contenir nimporte quel composant. –Un bon programmeur Java ne met pas les composants directement dans un JFrame. Quelques conteneurs disponibles

8 JPanel (panneau): –Cest un conteneur de composants qui peut être mis dans une fenêtre. –Un panneau est un lui-même composant. –Un panneau peut contenir dautres panneaux. JPanel

9 Exemple : JPanel panneau = new JPanel(); JFrame f = new JFrame(); f.add(panneau); ***Le panneau est ajouté dans le JFrame JPanel

10 Lorganisation dun JFrame : –Cette fenêtre contient déjà une zone de titre, un icône, un panneau principal (root pane) et un panneau transparent (glass pane) –Le panneau Root Pane contient un panneau par couches (layered Pane). JFrame

11 Lorganisation dun JFrame : –Le panneau par couches (JLayeredPane) contient une barre de menu (JMenuBar) et un panneau pour mettre les composants (Content Pane) JFrame

12 Dans le cadre de ce cours, nous mettrons principalement les composants dans le content Pane.

13 Pour faire apparaître un JFrame à lécran il faut faire setVisible(true) à partir dun objet. Pour faire disparaître un JFrame à lécran il faut faire setVisible(false) à partir dun objet. Par défaut un JFrame est en mémoire quil soit visible ou non. Si on ferme un JFrame avec le X dans le coin droit, la fenêtre est seulement rendu invisible. Pour quune fenêtre libère la mémoire il faut faire : setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE) à partir dun objet. Pour quune application se termine il faut faire setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) à partir dun objet. JFrame

14 Exemple : import javax.swing.JFrame; import java.awt.Rectangle; public class testFrame { public static void main(String[] args) { JFrame unFrame = new JFrame(" un titre "); unFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); unFrame.setBounds(new Rectangle(100,100,200,200)); //on change la location avec le mutateur de position unFrame.setLocation(300,300); unFrame.setVisible(true); } Consultez lapi pour les JFrame JFrame

15 Un JButton est un composant qui représente un bouton à cliquer. Il peut être affiché avec du texte ou un icône ou les deux. Constructeurs : –JButton(); //bouton pas de texte ni dicône –JButton(String text); –JButton(Icon icon); //voir ImageIcon –JButton(String text, Icon icon); JButton

16 Exemple dun bouton dans un JPanel dans un JFrame. import javax.swing.*; import java.awt.*; public class testFrame { public static void main(String[] args) { JFrame unFrame = new JFrame(" un titre "); unFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); unFrame.setBounds(new Rectangle(400,400,200,200)); JPanel panneau = (JPanel) unFrame.getContentPane(); JButton b = new JButton("test"); panneau.setBackground(Color.BLUE); panneau.add(b); unFrame.setVisible(true); } La méthode getContentPane() retourne une référence sur le content Pane associé à un JFrame. JButton

17 La programmation Java est dite évènementielle. Pour chaque composant affiché, lutilisateur peut produire un ou plusieurs évènements. –Ex: cliquer(gauche, droite, centre), déplacer la souris, déplacer la souris en maintenant le bouton clic, etc. Gestion simple dévènements

18 Il est possible de savoir quand ces évènements ont lieu grâce à des écouteurs dévènements (listener). Les écouteurs sont des interfaces définies dans Java. Gestion simple dévènements

19 Les écouteurs de bas niveaux sont ceux qui permettent de gérer des événements système (souris, clavier, mémoire,...) –MouseListener –FocusListener –KeyListener –MouseMotionListener –MouseWheelListener –ComponentListener –ContainerListener –WindowListener –WindowFocsListener –WindowsStateListener Gestion simple dévènements

20 Les écouteurs de haut niveaux représentent une action de lutilisateur qui a un sens. Cela savère souvent être une combinaison dévènements de bas niveaux. Exemple : Actionner un bouton est une pression et un relâchement du bouton de la souris(un clique). –ActionListener (JButton) –AdjustementListener (JScrollBar) –AncestorListener (JComponent) //laissé aux experts –CaretListener(JTextComponent) –ChangeEventListener (JAbstractButton, JMenuItem, JProgressBar, JSlider,...) –DocumentEventListener (JTextComponent) –HyperlinkEventListener(JEditorPane) –... Gestion simple dévènements

21 –Il y a une méthode prédéfinie dans les interfaces écouteurs pour chaque évènement. –Il suffit décrire une classe qui implémente une interface écouteur et décrire la méthode voulue. Gestion simple dévènements

22 –Une référence dune classe écouteur doit être ajoutée dans un composant pour gérer lévènement(addActionListener, addFocusListener,...). –Si un écouteur est ajouté et que lévènement associé à cet écouteur survient, la méthode associée à lévènement est exécutée. Gestion simple dévènements

23 ActionListener Survient lors de lactivation dun JButton. La méthode a écrire est actionPerformed public void actionPerformed(ActionEvent e) Le paramètre de la classe ActionEvent fournit de linformation sur le composant qui a levé lévènement. e.getActionCommand() retourne le texte du bouton, par défaut. e.getSource() retourne une référence de lobjet qui a généré lévènement. e.setActionCommand() permet de changer le texte par défaut Gestion simple dévènements

24 Exemple :

25 Démarrage dun GUI

26 Il est fortement conseillé de démarrer un GUI dans un processus ainsi que le code qui prend du temps à exécuter. Il trois façons de faire cela : –Utiliser la classe Thread et linterface Runnable –Utiliser javax.swing.SwingUtilities.invokeLater et linterface Runnable –Utiliser la classe SwingWorker

27 Démarrage dun GUI Runnable –Interface qui demande dimplémenter une méthode run() qui ne retourne rien Thread (Le constructeur reçoit une interface Runnable) –Thread t = new Thread(uneClasseImplementantRunable); –t.start();

28 Démarrage dun GUI javax.swing.SwingUtilities.invokeLater (Exécuteur dune interface Runnable) Exemple: javax.swing.SwingUtilities.invokeLater( new Runnable() { public void run() { //procédure qui crée le GUI creerEtMontrerGUI(); } );

29 Démarrage dun GUI SwingWorker –Doit redéfinir la méthode construct final SwingWorker worker = new SwingWorker(){ public Object construct() { //...code à exécuter ici } }; worker.start(); //requis pour SwingWorker version 3 ***Cette classe doit être récupérée sur le site de Sun car elle ne fait pas partie des API standards de Java


Télécharger ppt "Graphical User Interface (GUI) Définition Java Quelques attributs de Component Quelques méthodes de Component Quest-ce quun conteneur Quelques méthodes."

Présentations similaires


Annonces Google