Interfaces graphiques en JAVA

Slides:



Advertisements
Présentations similaires
Conception d’IHM en Java
Advertisements

Les Interfaces Graphiques
Les Interfaces graphiques Les Swing. Les interfaces graphiques: Introduction Une application est une boîte noire. Prend des entrées et produit des sorties.
Vos premiers pas en Swing
Retour sur MVC. Introduction aux IHM et à la réflexivité Java Vos premiers pas en Swing.
Graphical User Interface (GUI)
TYPES DE COMPOSANTES SWING Cours 420-B43. On peut distinguer 3 Niveaux 3 niveaux Haut niveau : toute application graphique doit comprendre au moins une.
Cours 91 9 Interfaces graphiques avec awt. Cours 92 Plan Introduction : deux bibliothèques graphiques 1.Comment se dessine une fenêtre ?  Un exemple.
Interfaces graphiques. Composants d'interface utilisateur graphique (GUI) 1 Bibliothèques Awt et Swing Procédures communes pour l'utilisation de ces clases.
14 La gestion d’événements
Interface graphique PO2 ( ) Chapitre 3 Gestionnaires géométrie.
 1) Il faut connaître le modèle et son fonctionnement  2) Définir le contrôle que l’on veut faire ouvrir, fermer, afficher, etc.) sur le modèle  3)
Cours d’introduction à Java Christophe Vaudry IUT - Cycle IRISM Année
Java Swing. Principes de base  Des composants graphiques (exemple: JFrame, JButton …)  Hiérarchie de classes  Des événements et les actions à effectuer.
Stéphane Frénot, Frederique Laforest, Frédéric Le-Mouël IJA 1 TD 7 IJA Les interfaces graphiques JAVA.
Créer des interfaces graphiques intuitives avec Qt et KDE.
GCstar Gestionnaire de collections personnelles Christian Jodar (Tian)
A la fin de ton année de 4 ème, tu dois être capable d’utiliser parfaitement un Mais d’abord qu’est-ce qu’un TABLEUR ? ???? TABLEUR- GRAPHEUR Page suivante.
L'image: Le codage des images BacPro SEN Lycée Condorcet.
Stéphane Frénot, Frederique Laforest, Frédéric Le-Mouël IJA 1 TD 6 IJA Structures de données JAVA.
Chapitre 2: Exploitation de logiciel Leçon 1: Traitement de textes.
Utilisation du logiciel EduStat © Construire une épreuve.
Algorithmique & Langage C IUT GEII S1
Les titres dans le mémoire
I- ANALYSE DU BESOIN / Plan
Exploitation de logiciels :
SanMarco – Outil MicroStrategy Manuel d’utilisation sur les fonctionnalités 27 juillet 2015.
Modèle objet : les classes
Les boites texte et dossier
Mettre à jour les données
Les outils de sélection Cours préparé par l’enseignante Wafa Bourkhis.
Pas de variable globale
Les notions de classe et d'objet
Micro Informatique au Cellier
AIDE A L’UTILISATION DU LOGICIEL LATISPRO
Javadoc et débogueur Semaine 03 Version A17.
Modélisation 3D sous SoliWorks Initiation à la DAO / CAO
Les objectifs du cours Savoir utiliser un Tableur
Les fonctions.
Présentation multimédia avec open office
Développement JAVA pour plateforme ANDROID
Développement d’applications interactive III
D3 – Produire, traiter, exploiter et diffuser des documents numériques
TD IHM Objectifs : - Mettre en œuvre quelques composants et containers d'interface graphique - Comprendre la notion de gestionnaire de placement - Prendre.
jean-michel Douin, douin au cnam point fr
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
TD IHM Objectifs : - Mettre en œuvre quelques composants et containers d'interface graphique - Comprendre la notion de gestionnaire de placement - Prendre.
Modélisation avec UML 2.0 Partie II Diagramme de classes.
Bases de données sous Access. Initiation aux bases de données  Structure d’une base de données.
Entrer dans Excel Cliquer sur le bouton Démarrer Glisser sur Microsoft Office Glisser sur Microsoft Excel ou Cliquer sur le Raccourci qui est sur le bureau.
Programmation Android Première application Android
En savoir plus Microsoft Actualités SharePoint
Programmation Android GUI (widgets) et ressources
Feuille de route Espace de travail Création de diapositives
Présentation de la base Frantext
Comment personnaliser Microsoft SharePoint Site web
Les classes et les objets
Programmation Android Les listes
Présentation SWING Siwar hadj hassen Omar ben yahya.
Film (Intermédiaire)   Pour reproduire les effets de cette diapositive, procédez comme suit : Sous l’onglet Accueil, dans le groupe Diapositives, cliquez.
Atos, Atos et le poisson, Atos Origin et le poisson, Atos Consulting ainsi que le poisson seul sont des marques déposées d'Atos Origin SA. © 2006 Atos.
Principes de programmation (suite)
STREAMS (et fichiers).
Lecture/Écriture de fichiers (I/O)
Passerelle M1 remise à niveau
Les interfaces de gestion d’événements (la suite)
Structure de données Les listes.
TP: RC Université de Jijel
TP N°1 : GUI en NetBeans Module R & C Université de Jijel
Texte du premier sujet Texte du deuxième sujet
Transcription de la présentation:

Interfaces graphiques en JAVA

Les environnements graphiques Menu système Fenêtre cadre Icône système Menu application Barre d'outils Zone client Vue fractionnée Barre d'état Vue avec ascenseur conteneur Composants graphiques

Conteneurs et composants (1) : généralités Une interface graphique en Java est un assemblage de conteneurs (Container) et de composants (Component). Un composant est une partie "visible" de l'interface utilisateur Java. Exemple : les boutons, les zones de textes ou de dessin, etc. Un conteneur est un espace dans lequel on peut positionner plusieurs composants et donc des conteneurs

Conteneurs disponibles Les conteneurs Conteneurs disponibles Parmi les conteneurs applicatifs, on peut citer : Les boites de dialogues Les fenêtres cadres Les applets

Les fenêtres d'application : JFrame C'est une fenêtre avec un cadre, utilisé de façon autonome, C'est donc un conteneur général, qui dispose d'un menu système, de boutons d'agrandissement, mise en icône et de fermeture de l'application Un JFrame peut contenir des composants ou d'autres conteneurs

Les boîtes de dialogue JDialog Un JDialog ressemble à un JFrame mais Il n'a pas de bouton du gestionnaire des fenêtres permettant de l'iconiser. On y associe habituellement un bouton de validation. Un JDialog dépend d'un frame parent(qui est passé comme premier argument au constructeur). Un JDialog n'est pas visible lors de sa création. Utiliser setVisible(true);

Les panneaux Ce sont des conteneurs non autonomes (JPanel). Ils se positionne dans une zone client d'une fenêtre. Ils peuvent fournir des barres de défilement pour manipuler une zone large (JscrollPane). Un JPanel peut recevoir plusieurs composants. Ils se placent selon le gestionnaire de placement choisi. Le conteneur JscrollPane ne peut recevoir qu'un composant.

Conteneurs et composants (2) : Frame et Panel Les deux conteneurs les plus courants sont JFrame et JPanel. Un JFrame présente une fenêtre de haut niveau avec un titre, une bordure et des angles de redimensionnement. Un JFrame est doté d'un BorderLayout par défaut. Un JPanel n'a pas une apparence propre et ne peut pas être utilisé comme fenêtre autonome. Un JPanel est doté d'un FlowLayout par défaut. Les JPanel sont créés et ajoutés aux autres conteneurs de la même façon que les composants tels que les boutons. Les JPanel peuvent ensuite redéfinir une présentation qui leur soit propre pour contenir eux-mêmes d'autres composants.

Composants graphiques principaux

La bibliothèque Swing

Conventions de nommage Les composants Swing sont situés dans le paquetage javax.swing et ses sous paquetages. Ils portent des noms similaires à leurs correspondants de awt précédés d'un J. JFrame, JPanel, JTextField, JButton, JCheckBox, JLabel, etc.

Aperçu des classes Swing (1) Conteneurs de haut niveau Conteneurs à usage général JPanel JScrollPane JSplitlPane JTabbedPane JtoolPane RootPane JDialog JFrame JApplet Conteneurs particulier JInternalPane JLayeredPane

Aperçu des classes Swing (2) Composants à usage général JButton JCheckBox JComboBox JList JSlider JRadioButton JMenu JSpinner JTextField JPasswordField

Aperçu des classes Swing (3) Composants interactifs JColorChooser JFileChooser JEditorPane ou JTextPane JTable JTree

Aperçu des classes Swing (3) Composants non éditable JProgressBar JSeparator JLabel JToolTip

Organisation d’un écran Composition d’objets graphique dans des containers 1-déclaration du container 2-insertion des composants dans le container 1) Déclaration du composant 2) Insertion du composant dans son container 1) JFrame maFen = new JFrame("Fenetre"); 21) JButton b=new JButton("Bonjour"); 22) maFen.getContentPane.add(b); ... maFenetre b JButton JFrame UneClasse 1 21 22 Remarque : Un container peut être inséré dans un autre container

Exemple composants swing

Exemple de composants swing JMenuBar JTextField JLabel JComboBox JList JCheckBox

Conteneurs et composants (4) : utilisation On ajoute un composant dans un conteneur, avec la méthode add() : JPanel p = new JPanel(); JButton b = new JButton(); p.add(b); De manière similaire, un composant est retiré de son conteneur par la méthode remove() : p.remove(b); Un composant a (notamment) : une taille préférée que l’on obtient avec getPreferredSize() une taille minimum que l’on obtient avec getMinimunSize() une taille maximum que l’on obtient avec getMaximunSize()

Gestionnaire de placement (1) Les conteneurs définissent la position des composants Soit en position absolue (x, y, largeur, hauteur) Soit selon le gestionnaire de placement associé au conteneur (LayoutManager) Le gestionnaire calcule la position des composants Qui peuvent ainsi être invisibles

Gestionnaire de placement (2) La méthode setLayout(layoutManager) définie dans les conteneurs permet de changer le gestionnaire par défaut Un gestionnaire par défaut est défini pour chaque conteneur Il est possible de choisir un autre gestionnaire de présentation pour un conteneur donnée La méthode pack() déclenche le calcul du placement La méthode invalidate() rend le placement courant invalide et donc le redimentionnement des composants à l'intérieur de celui-ci

Gestionnaire de placement (3) FlowLayout Place les composants de gauche à droite CardLayout Superpose les composants GridLayout Découpe en une grille régulière sur laquelle les composants sont placés GridBagLayout Découpe en une grille et place les composants sur une ou plusieurs cases

Gestionnaire de placement (4) BorderLayout Découpe l'espace en 5 régions : centre, est, ouest, sud et nord SpringLayout Pemet de définir de manière souple les distances entre les composants

Gestionnaire de placement (5) Positionnement absolu Null On place les composants sur le conteneurs en indiquant la position absolue avec la méthode setBounds(x, y, h, l)

Gestionnaire de placement (6) Tout conteneur possède un gestionnaire de présentation par défaut. Tout instance de Container référence une instance de LayoutManager. Il est possible d'en changer grâce à setLayout(). Les éditeurs visuels (GuiBuilder) utilise un gestionnaire de placement additionnel : GroupLayout

Premier exemple : ExempleIHM import java.awt.*; import javax.swing.*; public class ExempleIHM extends JFrame { private JButton b1; private JButton b2; public static void main(String args[]) { ExempleIHM that = new ExempleIHM(); that.pack(); //change taille du Frame pour englober boutons that.setVisible(true); } public ExempleIHM() { super("Notre exemple d'IHM"); // lance le constructeur de la super classe, ici Frame setLayout(new FlowLayout()); // nouveau gestionnaire pres. b1 = new JButton("Appuyer"); b2 = new JButton("Ne pas appuyer"); Container content = getContentPane(); content.add(b1); content.add(b2); Utiliser le gestionnaire par défaut(null). Modifiez le code pour obtenir un résultat similaire au précédent. La fenêtre doit avoir une taille de 200 X 200

Layout Manager : la hierarchie

Principaux paquetages Swing javax.swing javax.swing.border javax.swing.colorchooser javax.swing.event javax.swing.filechooser javax.swing.plaf javax.swing.table javax.swing.text javax.swing.text.html javax.swing.text.rtf javax.swing.tree javax.swing.undo

Le dessin sur transparents JLayeredPane est un conteneur qui permet de ranger ses composants en couches (ou transparents). Cette notion permet de dessiner les composants, selon un certain ordre: premier plan, plan médian, arrière plan, etc. Pour ajouter un composant, il faut spécifier la couche sur laquelle il doit être dessiné : monJlayeredPane.add (monComposant, new Integer(5));

Les étiquettes d'aide en ligne La classe ToolTipText permet de créer des aides en lignes qui apparaissent lorsque la souris passe sur un composant. JButton monBouton = new JButton ("Un bouton"); monBouton.setToolTipText ("Aide de mon bouton"); Ces quelques éléments ne sont qu'un aperçu de ce que propose Swing. Il y a beaucoup de composants, de nouveaux gestionnaires de présentation, de nouveaux événements graphiques que l ’on ne peut présenter dans le cadre de ce cours...

Les événements générés Chaque fois qu’un utilisateur frappe un caractère du clavier, appuie sur un bouton de la souris ou la déplace, un événement est généré. Ces événements sont envoyés à un composant appelé écouteur, mais c'est à lui d'enregistrer une routine de traitement d'événement pour recevoir l'événement. Le traitement de l'événement est ainsi délégué à une classe séparée.

Les événements générés (2) La gestion des événements passe par l'utilisation d'objets "écouteur d'événements" (les Listener) et d'objets sources d'événements. Un objet écouteur est l'instance d'une classe implémentant l'interface XXXXListener. Une source d'événements est un objet pouvant recenser des objets écouteurs et leur envoyer des objets événements.

Les événements générés (3) Les classes adapteurs permettent une mise en œuvre simple de l'écoute d'événements graphiques. Ce sont des classes qui implémentent les écouteurs d'événements possédant le plus de méthodes, en définissant un corps vide pour chacune d'entre elles. Plutôt que d'implémenter l'intégralité d'une interface dont une seule méthode est pertinente pour résoudre un problème donné, une alternative est de sous-classer l'adapteur approprié.

Les événements générés (4) import java.awt.*; import java.awt.event.*; import ButtonHandler; class TestButton { JFrame f; JButton b; public TestButton() super(); f = new JFrame ("TestButton"); Container panneauContenu; panneauContenu = f.getContentPane(); b = new JButton ("Pressez Moi"); panneauContenu.add ("Center", b) ; f.pack (); f.setVisible (true) ; b.addActionListener (new ButtonHandler ()); } public static void main(String args[]) TestButton that = new TestButton(); }} import java.awt.event.*; public class ButtonHandler implements ActionListener { public void actionPerformed (ActionEvent e) { System.out.println ("Action occured") ; }

Conteneurs et composants : hiérarchie Hiérarchie d’héritage des principaux éléments des interfaces graphiques en Java