1 / 248

Projet Programmation orientée objet (POO)

Université Antonine 2010 - 2011. Projet Programmation orientée objet (POO). Plan détaillé. Initiation Java Interfaces Graphiques Awt Swing Evénements ActionListener MouseListener Etc. Rappel sur les notions de POO Application Client - Serveur Base de données

nikita
Download Presentation

Projet Programmation orientée objet (POO)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Université Antonine 2010 - 2011 Projet Programmation orientée objet (POO)

  2. Plan détaillé • Initiation Java • Interfaces Graphiques • Awt • Swing • Evénements • ActionListener • MouseListener • Etc. • Rappel sur les notions de POO • Application Client - Serveur • Base de données • Threading et Gestion du Graphisme

  3. Plan détaillé • Initiation C# • Interface Graphique • Manipulation Fichiers • Editeur de Texte • Réseaux et Sockets • Serveur Chat

  4. Connaissances Acquises • Elaborer une bonne démarche scientifique nécessaire pour le développement d’une application • Intégrer les interfaces de programmation nécessaires à l’application en question. • Développer des applications dotées d’interfaces graphiques et/ou de communication (client/serveur).

  5. Connaissances Requises • Des notions de bases en • Algorithmique L3G • Algorithme OO

  6. Initiation Java

  7. Introduction Java • Orienté objet • Java ne permet d'utiliser que des objets (hors les types de base) • Sûr • Seul le bytecode est transmis, et «vérifié» par l’interpréteur • Le code source est préservé

  8. Caractéristiques du langage Java • Simple • Apprentissage facile • faible nombre de mots-clés • simplifications des fonctionnalités essentielles • Développeurs opérationnels rapidement • Familier • Syntaxe proche de celle de C/C++

  9. Caractéristiques du langage Java • Fiable • Gestion automatique de la mémoire(ramasse-miette ou "garbagecollector") • Gestion des exceptions • Sources d'erreurs limitées • typage fort, (le type est imposé) • pas d'héritage multiple, • pas de manipulations de pointeurs, etc. • Vérifications faites par le compilateur facilitant une plus grande rigueur du code • Vérification des types, des constructeurs des classes, …

  10. Java, un langage Interprété • Java est un langage interprété • La compilation d'un programme Java crée du pseudo-code portable : le "byte-code" • Sur n'importe quelle plate-forme, une machine virtuelle Java peut interpréter le pseudo-code afin qu'il soit exécuté • Les machines virtuelles Java peuvent être • des interpréteurs de byte-code indépendants (pour exécuter les programmes Java) • contenues au sein d'un navigateur(pour exécuter des applets Java)

  11. langage Compilé Compilateur C Fichier C (.c) Code executable

  12. langage interprété Compilateur Javac Fichier Java (.java) bytecode(.class) Machine Virtuelle java Code executable

  13. L’API de Java • Java fournit de nombreuses librairies de classes remplissant des fonctionnalités très diverses : c'est l'API Java • Ces classes sont regroupées, par catégories, en paquetages (ou "packages") • Swing • Java2D • Java3D • JAAS (Java Authentication and Authorization Service) • Java Security Framework • Etc.

  14. Interface Graphique en JAVA

  15. APIs correspondantes • AWT • Utilise des composants du systèmes • Swing (Sun Microsystems) • Composants entièrement dessinés en Java • SWT (Standard WidgetToolkit) • Initialement développée par IBM • Maintenu par Eclipse foundation • Une librairie graphique • Utilise les composants du système d’exploitation( comme le dll WinApi,..) • Elle est plus riche que AWT/Swing

  16. SWING

  17. Les Fenêtres • JWindow • Conteneur que vous pouvez afficher sur votre écran • Jframe • Fenêtre destinée à être la fenêtre principale de votre application • JDialog • Fenêtre destinée aux boîtes de dialogue • Lancer un message d’avertissement • Entrer les données • Note the JoptionPaneexample(JavaApplication1/JButton7) • . showConfirmDialog • . showMessageDialog • . showInputDialog • . showOptionDialog

  18. JFrame import javax.swing.JFrame; public class SimpleFenetre extends JFrame{ public SimpleFenetre(){ super(); build();//On initialise notre fenêtre } privatevoidbuild(){ setTitle("Ma première fenêtre"); //On donne un titre à l'application setSize(320,240); //On donne une taille à notre fenêtre setLocationRelativeTo(null); //On centre la fenêtre sur l'écran setResizable(false); //On interdit la redimensionnement de la fenêtre setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //On dit à l'application de se fermer lors du clic sur la croix } }

  19. Les Fenêtres • JDialog • Fenêtre destinée aux boîtes de dialogue • . showConfirmDialog • intrep=jOptionPane1.showConfirmDialog(this, "Cont O/N:Presss Escape or Close for Cancel", "My_title", jOptionPane1.CLOSED_OPTION); • //0 si OK, -1 si ESCAPE or CLOSE • System.out.println("reponse="+rep);

  20. Les Fenêtres • JDialog • Fenêtre destinée aux boîtes de dialogue • . showMessageDialog • jOptionPane1.showMessageDialog(this, • "Eggs are not supposed to be green.", • "Inane warning", • jOptionPane1.WARNING_MESSAGE);

  21. Les Fenêtres • JDialog • Fenêtre destinée aux boîtes de dialogue • . showOptionDialog • Object[] options = {"Yes, please", • "No, thanks", • "No eggs, no ham!"}; • int n = jOptionPane1.showOptionDialog(this, • "Wouldyoulikesome green eggs to go «  • + "withthatham?", • "A Silly Question", • jOptionPane1.YES_NO_CANCEL_OPTION, • jOptionPane1.QUESTION_MESSAGE, • null, • options, • options[2]); • System.out.println("n=" + n + "!");

  22. Les Fenêtres • JDialog • Fenêtre destinée aux boîtes de dialogue • . showInputDialog • Object[] possibilities = {"ham", "spam", "yam"}; • //possibilities=null; • String s = (String)jOptionPane1.showInputDialog( • this, • "Complete the sentence:\n«  • + "\"Green eggs and...\"", • "CustomizedDialog", • jOptionPane1.WARNING_MESSAGE, • null, • possibilities, • "ham"); • //If a string wasreturned • if ((s != null) && (s.length() > 0)) { • System.out.println("Green eggs and... " + s + "!");}

  23. Positionnement des composants • Les Layouts • BorderLayout • GridLayout • FlowLayout • CardLayout • Boxlayout • Etc.

  24. BorderLayout • Divise ses composants en 5 régions : nord, sud, ouest, est, et centre. • "nord" et "sud" occupent toute la largeur de la partie réservée à nord ou sud, • "ouest" et "est" occupent toute la hauteur qui reste de la partie réservée à ouest et est, • Centre" occupe la place restante.

  25. BorderLayout • Demo: JavaApplication1\NewJFrame1

  26. GridLayout • Composants sur une grille, ligne par ligne (dans l'ordre d'adjonction), • Les cellules ont la même taille, • à la retaille, les cellules se taillent, • hgapet vgapsont nuls par défaut. • Demo:JavaApplication1\NewJFrame • FrameGridLayout 5 lignes 0 colonne • Jpanels dans Jframe • Jpanels GridLayout 2 lignes 0 colonne GridLayout(intlignes, int cols, inthgap, intvgap) GridLayout(intlignes, int cols)

  27. FlowLayout • FlowLayoutest le gestionnaire par défaut des Panel. • Affiche les composants de la gauche vers la droite, et passe à la ligne s'il n'y a plus de place. FlowLayout(int align, inthgap, intvgap) FlowLayout(int align) FlowLayout() e.g. FlowLayout fl=new FlowLayout(FlowLayout.center,0,2)

  28. FlowLayout

  29. CardLayout

  30. CardLayout

  31. BoxLayout

  32. BoxLayout

  33. BoxLayout

  34. BoxLayout

  35. BoxLayout

  36. BoxLayout

  37. public class Frame1 extendsJFrame{ public Frame1() { super(); this.setTitle("Ma premiere application"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLocationRelativeTo(null); BorderLayoutbLayout= new BorderLayout(); this.getContentPane().setLayout(bLayout); JPanelbuttonsPanel= new JPanel(); JPaneltextPanel = new JPanel(); JLabel label = new JLabel("Nom: "); JTextFieldtextField = new JTextField(20); JButtonbtok = new JButton("ok"); textPanel.add(label); textPanel.add(textField); buttonsPanel.add(btok); this.getContentPane().add(buttonsPanel, BorderLayout.SOUTH); this.getContentPane().add(textPanel, BorderLayout.CENTER); this.pack(); this.setVisible(true); } }

  38. La méthode main public staticvoid main (String args[]) { Frame1 frame = new Frame1(); }

  39. Exercice • Développez le code qui permet d’afficher la fenêtre suivante

  40. Java et Evénements

  41. Que se passe-t-il lors d'un clic ? En java, un clic génère un événement (Un objet)

  42. import javax.swing.*; public class FenetreAvecBouton extends JFrame{ privateJButtonunBouton; privateJpanel pane = new JPanel (); public FenetreAvecBouton (){ JButtonunBouton = new JButton("Quitter"); pane.add (unBouton); setContentPane(pane); //or this.getContentPane().add(pane); } public static void main (String args []) { new FenetreAvecBouton().setVisible (true); } }

  43. Events Create the Listener: Objects of this class are GoHandlers but also ActionListeners public class GoHandler implements ActionListener { ... public void actionPerformed (ActionEvent e) { ... } } This method is called automatically when the button is clicked ... JButton go = new JButton (“Go”); go.addActionListener (new GoHandler ()); Register the Listener:This method expects an ActionListener object (GoHandler)

  44. Events • L'objet événement de Java est un objet de type EventObject • Tout objet de type EventObject a un attribut source qui peut être récupéré en utilisant la fonction getSource() de la class EventObject

  45. Hiérarchie des événements

  46. Qui crée ce type d'objet ? • Un Thread (comme le EventDispatchingThread) dans JVM permet de récupérer les interactions de l’utilisateur avec l’application • Si on clique sur un composant, ce thread crée un événement relatif à l’action réalisée en utilisant le composant comme source de l’événement • Ensuite il appel le « handler » correspondant à ce composant • Cependant, on ne crée pas les événements: on se contente de les gérer • Explication additionnelle

  47. Qui crée ce type d'objet ?

  48. La gestion des événements • Pour pouvoir gérer les événements, il faut les écouter • Tout le principe de la programmation événementielle repose sur la définition des événements et des objets qui les écoutent

  49. Catégories des événements • Pour chaque catégorie d’événements, il existe une interface qui doit être respectée par toute classe souhaitant recevoir cette catégorie événements. • Cette interface exige que toutes les méthodes soient définies. • Ces méthodes sont appelées lorsque des événements particuliers surviennent.

  50. Catégories des événements

More Related