Java- LT informatique

480 views

Published on

Introduction au langage Java et aux concepts de base de la programmation orientée objets (P.O.O.)
Le langage : structure lexicale, types de données, structure de contrôle
Les tableaux, les chaînes de caractères
Les packages
Héritage, classes de base et interfaces
Les exceptions
Les threads
Les entrées-sorties
Java et les interfaces graphiques
Java et l'Internet : les applets
Java et le réseau
Java et les bases de données

Published in: Education
  • a new version of presentation will be available every week
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Java- LT informatique

  1. 1. Comment Java ? Java Bien ! Formation "Programmation Java"
  2. 2.  C'est une formation sur la programmation Java  Objectifs :  Introduction au langage Java et aux concepts de base de la programmation orientée objets (P.O.O.)  Par qui : Hassan Chaaban  Licencié en administration de base de données (De Microsoft)  Master en informatique  Enseignant/formateur Java,Android,VB.Net,C#.Net, SQL Server La formation
  3. 3. Planning  Introduction, notions et concepts de base  POO - Notions de base sur les classes  Le langage : structure lexicale, types de données, structure de contrôle  Les tableaux, les chaînes de caractères  Les packages  Héritage, classes de base et interfaces  Les exceptions  Les threads  Les entrées-sorties  Java et les interfaces graphiques  Java et l'Internet : les applets  Java et le réseau  Java et les bases de données
  4. 4. Introduction, notions et concepts de base
  5. 5. Presentation du language Premier programme Java, compilation, exécution Quelques notions sur la programmation objet Notions de base sur les classes Types de données en Java Structure lexicale du langage Tableaux et classes de base Blocs et instructions de contrôle Paquetages Plan
  6. 6. Java, c'est quoi ?
  7. 7.  Un environnement de programmation orienté objets adapté à la distribution d'applications  Développé par SUN Microsystems
  8. 8. Principales propriétés de Java
  9. 9.  Java est un langage • orienté objet • à classes  de syntaxe proche du langage C (C++)  fourni avec le JDK (Java Développement Kit) : • outils de développement • ensemble de paquetages très riches et très variés  portable (grâce JVM)
  10. 10. Premier programme Java
  11. 11. Fichier source Java : HelloWorld.java public class HelloWorld { public static void main(String[] args){ System.out.println("Hello world"); } }
  12. 12. Notions de base sur la programmation objet
  13. 13. Qu’est-ce qu’un objet ?
  14. 14.  Toute entité identifiable, concrète ou abstraite,  Un objet réagit à certains messages qu'on lui envoie de l'extérieur ; la façon dont il réagit détermine le comportement de l'objet  Il ne réagit pas toujours de la même façon à un même événement ; sa réaction dépend de l’état dans lequel il se trouve
  15. 15. Notion d’objet en Java  Un objet possède : • une identité unique (identifie l’objet) • un comportement (ou Methodes) • un état interne (Attributes)  L’état interne est donné par des valeurs de variables (ou attributs)  Le comportement est donné par des fonctions ou sous- programmes, appelées méthodes (ou opérations)
  16. 16. Les classes en Java
  17. 17.  Une classe est un moule pour créer des objets  Une classe est composée de membres : • des variables, ou champs, ou attributs  donnent l’état des instances • des méthodes , ou opérations  indiquent les types de messages qui pourront être envoyés aux instances • des constructeurs  créent les instances
  18. 18. Les méthodes
  19. 19. Les variables
  20. 20. Variable locale Ou variable d’instance ?
  21. 21. Une thread (appelée aussi activité) est un fil d'instructions (un chemin d’exécution) à l'intérieur d'un processus.
  22. 22. Le Suivant!
  23. 23. Swing est une extension des AWT
  24. 24. Swing propose de nouvelles classes et interfaces parallèle à celle de l'AWT, pour construire des interfaces graphiques. L'ancêtre de cette hiérarchie est le composant JComponent Swing : généralités
  25. 25.  Le paquetage javax.swing contient de nombreuse classes permettant de réaliser des interfaces graphiques.  La classe de base est la classe JComponent.  Quatre classes définissent des composant de «haut niveau» :  JFrame : définit une fenêtre application, avec titre, boutons fermeture, iconification, agrandissement, menu, etc..  JWindow : définit une fenêtre sans le cadre.  JDialog : définit une fenêtre de dialogue, qui peut être modale ou non.  JApplet : définit une applet. Swing : généralités (suite)
  26. 26. JComponent JComponent est la classe de base de tous les composants Swing, à part JFrame, JDialog et JApplet
  27. 27. Swing
  28. 28. JComponent
  29. 29. Architecture d'une interface Swing Une interface sera composée:  D'un composant racine (toplevel)  D'un ou de plusieurs containers  De composants au sein des containers
  30. 30. Composants racines de Swing
  31. 31. La classe JFrame Elle représente une fenêtre principale qui possède un titre, une taille modifiable et éventuellement un menu.
  32. 32. La classe JFrame(Suite) Par défaut, la fenêtre créée n'est pas visible. La méthode setVisible(true) permet de l'afficher Tous les composants associés à un objet JFrame sont gérés par un objet de la classe JRootPane. Un objet JRootPane contient plusieurs Panes. Tous les composants ajoutés au JFame doivent être ajoutés à un des Pane du JRootPane et non au JFrame directement.
  33. 33. La classe JFrame(Suite) Le Pane le plus utilisé est le ContentPane. Le Layout manager par défaut du contentPane est BorderLayout. Il est possible de le changer .
  34. 34. JFrame public JFrame(); Construction de la fenêtre public JFrame(String titre); Construction de la fenêtre avec un titre public JMenuBar getJMenuBar(); récupère la barre de menu de l'application public void setJMenuBar(JMenuBar barreMenu); place automatiquement une barre de menu donnée en haut de la fenêtre, en laissant le pavé de contenu libre pour le reste du contenu applicatif. public void setLayout(java.awt.LayoutManager gestionnaire); place un nouveau gestionnaire de disposition des composants graphiques internes à la fenêtre. public void setTitle(String titre); Spécifie un titre public void setFont(Font fonte); Définie une nouvelle police de caractères public Component add(Component composant); Place un nouveau composant dans le conteneur public void setBackground(Color couleur); Spécifie une couleur de fond public void setForeground(Color couleur); Spécifie une couleur du texte public Graphics getGraphics(); Récupère la surface de travail du composant pour pouvoir réaliser d'autres tracés. public int getHeight(); Hauteur du composant public void setLocation(int x, int y); Positionne les coordonnées du composant par rapport au coin supérieur gauche. public void setSize(int largeur, int hauteur); Spécifie les dimensions du composant public void setVisible(boolean visible); Rend un composant visible ou non public int getWidth(); Largeur du composant public void repaint(); Demande de redessiner le composant public void setDefaultCloseOperation(int operation) pour déterminer le comportement de la fenêtre lors de sa fermeture
  35. 35. Les trois types de conteneurs les plus utilisés sont : JFrame, JPanel et JApplet
  36. 36. Méthodes paintComponent et repaint
  37. 37.  En Swing, c'est dans cette méthode que doit être fait les dessins d'un composant. Cette méthode est définie dans la classe JComponent. C'est en redéfinissant cette méthode que l'on peut ajouter des instructions de dessin  En AWT, la méthode paintComponent n'existe pas et c'est la méthode paint qui doit être redéfinie pour ajouter du dessin. En Swing, la méthode paint existe encore mais elle ne doit pas être redéfinie. Méthodes paintComponent et repaint
  38. 38. Méthodes proposées de la classe Graphics
  39. 39. Graphics comporte quelques méthodes permettant de dessiner et remplir des formes courantes : Méthode Description drawArc(int x, int y, int largeur, int hauteur, int angledébut, int anglefin) Dessine un arc de cercle (angle en degré) drawLine(int xdébut, int ydébut, int xfin, int yfin) Dessine une ligne drawOval(int x, int y, int largeur, int hauteur) Dessine un ovale drawPolygon(int[] lesX, int[] lesY, int nombrePoint) Dessine un polygone et le ferme en joignant les extrémités drawRect(int x, int y, int largeur, int hauteur) Dessine un rectangle drawRoundRect(int x, int y, int largeur, int hauteur, int largeurArc, int hauteurArc) Dessine un rectangle à coins arrondis fillArc(int x, int y, int largeur, int hauteur, int angledébut, int anglefin) Dessine un arc de cercle plein fillOval(int x, int y, int largeur, int hauteur) Dessine un ovale plein fillPolygon(int[] lesX, int[] lesY, int nombrePoint) Dessine un polygone plein fillRect(int x, int y, int largeur, int hauteur) Dessine un rectangle plein fillRoundRect(int x, int y, int largeur, int hauteur, int largeurArc, int hauteurArc) Dessine un rectangle plein à coins arrondis
  40. 40. Positionner son composant Les Layout Managers
  41. 41.  Vous allez voir qu'il existe plusieurs sortes de layout managers  FlowLayout java.awt  BorderLayout java.awt  GridLayout java.awt  BoxLayout javax.swing Les Layout Managers
  42. 42. FlowLayout Constructeurs:  FIowLayout() Crée un gestionnaire FlowLayout avec des lignes centrées et un espacement horizontal et vertical de 5 pixels entre les composants.  Flowlayout(int align) Crée un gestionnaire Fl owLayout avec un alignement de type align (voir constantes). L'espacement horirontal et vertical des composants est de 5 pixels.  Flowlayout(int align, int hgap, int vgap) Crée un gestionnaire FlowLayout avec un alignement de type align (voir constantes). Les espacements horizontal et vertical des composants est de hgap et vgal pixels. Constantes:  int FIowLayout .CENTER : Indique que les composants sont à centrer sur chaque ligne.  int FIowLayout .LEFT : Indique que les composants d'une ligne doivent être alignés à gauche.  int FIowLayout .RIGHT : Indique que les composants d'une ligne doivent être alignés à droite.
  43. 43. FlowLayout
  44. 44. BorderLayout  BorderLayout() Crée un gestionnaire BorderLayout.  BorderLayout(int hgap, intvgap) Crée un gestionnaire BorderLayout, qui laisse entre les composants un espace horizontal hgap et un espace vertical vgap.
  45. 45. BorderLayout
  46. 46. GridLayout  public GridLayout (int rows, int cols) Permet gestionnaire de placements de composant ayant la forme d'une grille de rows lignes par cols colonnes.  public GridLayout (int rows, int cols, int hgap, int vgap) idem constructeur précédent avec un espacement horizontal et vertical entre les composants de hgap et vgap pixels (par défaut égal à 0).
  47. 47. GridLayout
  48. 48. GridLayout
  49. 49. BoxLayout  BoxLayout(Container target, int axis) spécifie si les composants doivent être mis sur une ligne (paramètre BoxLayout.X_AXIS) ou sur une colonne paramètre BoxLayout.Y_AXIS).
  50. 50. BoxLayout
  51. 51. la classe JLabel Constructeurs Rôle JLabel() Création d'une instance sans texte ni image JLabel(String) Création d'une instance en précisant le texte JLabel(String, int) Création d'une instance en précisant le texte et l'alignement horizontal
  52. 52. La classe JLabel définit plusieurs méthodes pour modifier l'apparence du composant :  L'alignement vertical par défaut d'un JLabel est centré. L'alignement horizontal par défaut est soit à gauche s'il ne contient que du texte, soit centré s'il contient une image avec ou sans texte. Pour modifier cet alignement, il suffit d'utiliser les méthodes ci-dessus en utilisant des constantes en paramètres : SwingConstants.LEFT, SwingConstants.CENTER, SwingConstants.RIGHT, SwingConstants.TOP, SwingConstants.BOTTOM  Par défaut, un JLabel est transparent : son fond n'est pas dessiné. Pour le dessiner, il faut utiliser la méthode setOpaque() : void setText(String t) Affecte un texte au label. String getText() Retourne le texte du label. void setFont(Font f) Affecte une police au label. Font getFont() Retourne la police du label. void setOpaque(boolean b) Rend le label opaque si b vaut true,par défaut un label est transparent. boolean isOpaque() Retourne la propriété opaque du label. void setHorizontalAlignment(int a) Affecte l'alignement horizontal : LEFT, RIGHT, CENTER, LEADING, TRAILING void setVerticalAlignment(int a) Affecte l'alignement vertical : TOP, BOTTOM, CENTER void setBackground(Color c) Color getBackground() void setForeground(Color c) Color getForeground()
  53. 53. la classe AbstractButton
  54. 54. la classe AbstractButton Méthode Rôle AddActionListener Associer un écouteur sur un événement de type ActionEvent AddItemListener Associer un écouteur sur un événement de type ItemEvent doClick() Déclencher un clic par programmation getText() Obtenir le texte affiché par le composant setEnabled() Activer/désactiver le composant setText() Mettre à jour le texte du composant isSelected() Indiquer si le composant est dans l'état sélectionné setSelected() Définir l'état du composant (sélectionné ou non selon la valeur fournie en paramètre
  55. 55. la classe JButton Constructeur Rôle JButton() JButton(String) préciser le texte du bouton
  56. 56. la classe JCheckBox Constructeur Rôle JCheckBox(String) précise l'intitulé JCheckBox(String, boolean) précise l'intitulé et l'état
  57. 57. la classe JRadioButton Constructeur Rôle JRadioButton() Créer un bouton non sélectionné sans libellé JRadioButton(String) Créer un bouton non sélectionné avec le libellé fourni en paramètre JRadioButton(String, boolean) Créer un bouton avec le libellé et l'état fournis en paramètres
  58. 58. la classe JTextComponent
  59. 59. la classe JTextComponent La classe abstraite JTextComponent est la classe mère de tous les composants permettant la saisie de texte. Méthode Rôle void copy() Copier le contenu du texte et le mettre dans le presse papier système void cut() Couper le contenu du texte et le mettre dans le presse papier système Document getDocument() Renvoyer l'objet de type Document qui encapsule le texte saisi String getSelectectedText() Renvoyer le texte sélectionné dans le composant int getSelectionEnd() Renvoyer la position de la fin de la sélection int getSelectionStart() Renvoyer la position du début de la sélection String getText() Renvoyer le texte saisi String getText(int, int) Renvoyer une portion du texte débutant à partir de la position donnée par le premier paramètre et la longueur donnée dans le second paramètre bool isEditable() Renvoyer un booléen qui précise si le texte est éditable ou non void paste() Coller le contenu du presse papier système dans le composant void select(int,int) Sélectionner une portion du texte dont les positions de début et de fin sont fournies en paramètres void setCaretPosition(int) Déplacer le curseur dans le texte à la position précisé en paramètre void setEditable(boolean) Permet de préciser si les données du composant sont éditables ou non void setSelectionEnd(int) Modifier la position de la fin de la sélection void setSelectionStart(int) Modifier la position du début de la sélection void setText(String) Modifier le contenu du texte
  60. 60. la classe JTextField public JTextField(); Ce constructeur permet de créer l'objet avec les paramètres par défaut. public JTextField(int columns); Ce constructeur permet de créer l'objet vide avec le nombre de colonnes spécifiés. public JTextField(String text); Ce constructeur permet de créer l'objet avec le texte spécifié. public JTextField(String text, int columns); Ce constructeur permet de créer l'objet avec le texte et le nombre de colonnes spécifiés.
  61. 61. Méthode Description int getColumns(); Cette méthode permet de demander le nombre de colonnes dans l'objet TextField. int getHorizontalAlignment(); Cette méthode permet de demander l'alignement horizontal du texte. void setColumns(int columns); Cette méthode permet de fixer le nombre de colonnes dans l'objet TextField et revalide ses dispositions. void setFont(Font f); Cette méthode permet de fixer la police de caractères courante. void setHorizontalAlignment(int alignment); Cette méthode permet de fixer l'alignement horizontal du texte. la classe JTextField
  62. 62. la classe JTextArea JTextArea() Construit une nouvelle instance de JTextArea. JTextArea(int l, int c) Construit une nouvelle instance de JTextArea, avec l lignes et c colonnes. Les lignes et colonnes sont utilisées pour déterminer la taille préférrée du JTextArea, et éventuellement faire apparaître les barres de défilement, si le JTextArea est placé dans un JScrollPane. JTextArea(String texte) Construit un JTextArea avec un texte initial. JTextArea(String texte, int l, int c) JTextArea(Document doc, String t, int l, int c)
  63. 63. String getText() Retourne le texte du JTextArea. String getText(int d, int l) Retourne le texte du JTextArea, qui a pour longueurl à partir de d. String getSelectedText() Retourne le texte sélectionné. void setText(String t) Le texte du JTextArea est remplacé par t. void append(String t) Ajoute le texte t à la fin du JTextArea. void insert(String t, int pos) Insère le texte t à la position pos, dans le JTextArea. void replaceRange(String t,int d,int f) Remplace le texte du JTextArea qui va de d à f par le texte t. void replaceSlection(String t) Remplace le texte sélectionné du JTextArea par le texte t. la classe JTextArea
  64. 64. la classe JTextArea int getSelectionStart() Retourne l'indice du début de la sélection. int getSelectionEnd Retourne l'indice de la fin de la sélection. void setSelectionStart(int d) Positionne le début de la sélection. void setSelectionEnd(int e) Positionne la fin de la sélection. Color getSelectedTextColor() Retourne la couleur du texte sélectionné. Color getSelectionColor() Retourne la couleur de fond du texte sélectionné. void setSelectedTextColor(Color c) Change la couleur du texte sélectionné. void setSelectionColor(Color c) Change la couleur du fond du texte sélectionné. void select(int d, int f) Sélectionne le texte de d à f. void selectAll() Sélectionne tout le texte.
  65. 65. la classe JTextArea void cut() Coupe le texte sélectionné et le copie dans le presse-papiers. void copy() Copie le texte sélectionné dans le presse-papiers. void paste() Copie le presse-papiers à la place du texte sélectionné.
  66. 66. la classe JList La classe JList permet d'afficher une liste d'objets, et offre à l'utilisateur la possibilité de sélectionner un ou plusieurs objets de la liste. JList() Crée un JList vide. JList(Object [] donnees) Crée un JList qui affiche les données contenues dans le tableau donnees. JList(Vector<?> v) Crée un JList qui affiche les données contenues dans le vecteur v. JList (ListModel l) Crée un JList qui affche les données contenues dans le ListModel l.
  67. 67. la classe JList int getSelectionMode() Retourne le mode de sélection des données. void setSelectionMode( int sm) javax.swing.ListSelectionModel.SINGLE_SELECTION javax.swing.ListSelectionModel.SINGLE_INTERVAL_SELECTION javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION void setVisibleRowCount( int l) void ensureIndexVisible(int index) Assure que l'item au rang index est visible. void clearSelection() Plus aucun item sélectionné. boolean isSelectionEmpty() Retourne true s'il n'y a aucun item sélectionné. int getLastVisibleIndex() Retourne l'indice du dernier item visible. int getSelectedIndex() Retourne l'indice de l'item sélectionné. int[] getSelectedIncices() Retourne les indices des items sélectionnés. void setSelectedIndex(int i) Affecte l'indice de l'item sélectionné. void setSelectedIndices(int [] i) Affecte les indices des items sélectionnés. Object getSelectedValue() Retourne la valeur de l'item sélectionné. void setSelectedValue(Object v, boolean b) L'item sélectionné devient v. Si b vaut true, il est rendu visible dans le JList. Object[] getSelectedValues() Retourne un tableau des items sélectionnés. ListModel getModel() Retourne le modèle de données affiché par le JList. void setModel(ListModel lm) Le nouveau modèle de données affiché par le JList est lm.
  68. 68. la classe JList int getSize() Retourne le nombre d'éléments présents dans la liste. boolean isEmpty() Retourne getSize()==0 void clear() Enlève tous les éléments. void addElement(Object obj) Ajoute element en fin de liste. Object firstElement() Object lastElement() Object get(int index) boolean contains(Object element) Retourne true si element est dans la liste et false sinon. int indexOf(Object element) int indexOf(Object element, int index) int lastIndexOf(Object element) int lastIndexOf(Object element, int index) Object remove(int index) boolean removeElement(Object element) Enlève la première occurrence de element de la liste, et retourne true. Retourne false si element n'est pas dans la liste. void removeRange(int depuis, int jusqua) Enlève de la liste tous les élément d'indices depuis (inclus) à jusqua (exclu). Object set(int index, Object element) DefaultListModel
  69. 69. Jlist Example
  70. 70. la classe JScrollPane JScrollPane est un conteneur permettant de munir un composant de barres de défilement JScrollBars sont munies d'une stratégie d'affichage qui peut être : • VERTICAL_SCROLLBAR_AS_NEEDED • VERTICAL_SCROLLBAR_NEVER • VERTICAL_SCROLLBAR_ALWAYS • HORIZONTAL_SCROLLBAR_AS_NEEDED • HORIZONTAL_SCROLLBAR_NEVER • HORIZONTAL_SCROLLBAR_ALWAYS JScrollPane() politique horizontale et verticale AS_NEEDED JScrollPane(Component vue ) politique horizontale et verticale AS_NEEDED JScrollPane(Component vue, int vPolitique, int hPolitique) Crée un JScrollPane avec composant vue avec une politique horizontale et une politique verticale JScrollPane(int vPolitique, int hPolitique) Crée un JScrollPane sans composant vue avec une politique horizontale et une politique verticale
  71. 71. la classe JScrollPane void setViewPortView( Component c) Affecte le composant Scrollable à visualiser. void setVerticalScrollBarPolicy(int p) Affecte la stratègie d'affichage de la ScrollBar verticale. int getVerticalScrollBarPolicy() void setHorizontalScrollBarPolicy( int p) Affecte la stratègie d'affichage de la ScrollBar verticale. int getHorizontalScrollBarPolicy() void setColumnHeaderView (Component c) Affecte un composant comme en-tête de colonnes
  72. 72. Jlist Example + JScrollPane
  73. 73. JScrollPane Example
  74. 74. JInternalFrame() Crée une JInternalFrame non redimensionnable, non fermable, non maximisable, non iconifiable et sans titre. JInternalFrame(String title) Crée une JInternalFrame non redimensionnable, non fermable, non maximisable et non iconifiable. JInternalFrame(String title, boolean resizable) JInternalFrame(String title, boolean resizable, boolean closable) JInternalFrame(String title, boolean resizable, boolean closable, boolean maximizable) JInternalFrame(String title, boolean resizable, boolean closable, boolean maximizable, boolean iconifiable) la classe JInternalFrame
  75. 75. la classe JInternalFrame JDesktopPane getDesktopPane() Retourne le JDesktopPane qui contient cette frame. String getTitle() Retourne le titre de la frame. void setTitle(String t) Affecte le titre de la frame. boolean isSelected() Retourne true si la fenêtre est active void toBack() void toFront()
  76. 76. JInternalFrame Example
  77. 77. JInternalFrame Example
  78. 78. Le Suivant!
  79. 79. Les événements et les écouteurs L’interface ActionListener et la classe ActionEvent L’interface ItemListener et la classe ItemEvent Les classes anonymes et les classes internes Les classes JMenuBar, JMenu, JMenuItem, JCheckedMenuItem (constructeurs et principales méthodes) Fenêtres de dialogue (JOptionPane) : Message, Saisie et confirmation

×