Faculté I&C, Claude Petitpierre, André Maurer 1 Java.

Slides:



Advertisements
Présentations similaires
DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL.
Advertisements

SAX Simple API for XML. Généralités API non standard développé par les membres du forum XML-DEV Parseur XML – Orienté événement – Parsing dynamique SAX.
Spécialisation/généralisation Héritage Polymorphisme
1 Quelques précisions sur l'héritage. 2 Signification de super.f() appel à la méthode f() masquée super : désigne l'objet appelant comme s'il était de.
Programmation événementielle
SI3 MAM3 Hydro Nathan Cohen Igor Litovsky Christophe Papazian
Introduction à la programmation objet Langage Java
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
(Classes prédéfinies – API Java)
Programmation Objet en JAVA Mise à Niveau
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
Les fonctions en Java Partie I Le type void. Dans cette rapide présentation, je vais expliquer :.à quoi servent les fonctions.à quoi faut-il penser avant.
Les entrées /sorties en Java François Bonneville
Connexion base de données
Chapitre IV Object, interfaces, classes imbriquées.
BlueJ_XI 1 Java, les objets : tout de suite ! Gestion des erreurs : les exceptions Notes de cours associées au chapitre 11 tutorial BlueJ
Faculté I&C, Claude Petitpierre, André Maurer 1 Systèmes multi-processus C. Petitpierre
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
POO-L3 H. Fauconnier1 Chapitre IV 1. classe Object, clonage 2. interfaces 3. classes internes et imbriquées.
Écouteurs de click d'une fenêtre
Cours du 19 octobre. POO-L3 H. Fauconnier2 E) Constructeurs et héritage Le constructeurs ne sont pas des méthodes comme les autres: le redéfinition na.
Badr Benmammar Programmation concurrente et temps réel en Java Badr Benmammar
Master 1 SIGLIS java Lecteur Stéphane Tallard Chapitre 4 – Structures de contrôle.
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
Classes abstraites et Interfaces
Le patron de conception « Strategy » Simon Durocher ( )
Programmation par Objets et Java
Langage Oriente Objet Cours 2.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
JUnit Présentation complète de JUnit et « guide d’utilisation » en 13 transparents.
Design Pattern Memento. Principe : Enregistrer les changements d'états d'un objet Objectif : Pouvoir restituer les états précédents d'un objet.
Design Pattern: Decorator
Faculté I&C, Claude Petitpierre, André Maurer 1 Concepts dhéritage Héritage dimplémentation hasA Héritage de spécialisation isA.
Faculté I&C, Claude Petitpierre, André Maurer Le parallélisme Introduction.
Multi-Thread Jian-Yun Nie
IFT 6800 Atelier en Technologies d’information
1 Les paquetages («packages»). 2 L'objectif avec les paquetages («packages») est de rendre accessibles aux utilisateurs des classes définies par d'autres.
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
Badr Benmammar Formation Développeur Java Thread et Swing Badr Benmammar
Formation Développeur Java Programmation objet avec JAVA Partie 2
Formation Développeur Java Applet et interfaces graphiques avec AWT
Badr Benmammar Programmation concurrente et temps réel en Java Badr Benmammar
Cours 11 Threads. Chapitre X threads threadPOO-L3 H. Fauconnier3 Threads threads: plusieurs activités qui coexistent et partagent des données exemples:
Cours 5 Héritage, Interfaces, classes internes. POO-L3 H. Fauconnier2 La classe Object Toutes les classes héritent de la classe Object Object méthodes:
COURS DE PROGRAMMATION ORIENTEE OBJET :
CSI1502 Principes fondamentaux en conception des logiciels Chapter 8: Gestion des exceptions.
CNAM Belfort NFP121_Programmation_Avancée
Fabienne Boyer Laboratoire LIG (INRIA-UJF-INPG) Projet SARDES, INRIA Rhône-Alpes APACHE/VELOCITY.
Une introduction à Java
1212 Entrée et sortie de fichiers Objectifs À la fin de ce cours, vous serez capables de : • Lire à partir de la console • Écrire sur la console.
Intention Séparer et extraire les traitements appliquées à différents type de nœuds d’une structure.
Objectifs À la fin de ce cours, vous serez capables de :
LIFI-Java 2004 Séance du Mercredi 22 sept. Cours 3.
Copyright © SUPINFO. All rights reserved La Programmation Orientée Objet en C# 2.0.
11/04/ L'héritage Cours 7 Cours 7.
Cours 7 Classes locales Clonage Divers: tableaux.
Interfaces graphiques. Composants d'interface utilisateur graphique (GUI) 1 Bibliothèques Awt et Swing Procédures communes pour l'utilisation de ces clases.
Tutorat en bio-informatique
Constructeurs H Batatia. Variable statique Une variable statique est partagée par tous les objets d’une classe.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 3 – Classes et objets en Java Master 1 SIGLIS1 Java Lecteur - Chapitre 3 Classes et objets en Java.
Les classes et les objets Les données finales class A { … private final int n = 20 ; // la valeur de n est définie dans sa déclaration … } class A { public.
Cours du 5 novembre.
IUT du Limousin L.U.P Michel Vergnaud Programmation Objet - Java.
Introduction à la programmation objet avec java
Héritage Conception par Objet et programmation Java
Généricité.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Correction du TD Chapitre 2.
Package traçable Tatiana Aubonnet.
Transcription de la présentation:

Faculté I&C, Claude Petitpierre, André Maurer 1 Java

Faculté I&C, Claude Petitpierre, André Maurer 2 Classe Java public class Depart { public static int x = 0; public static void main(String[] args) { System.out.println(args.length); System.out.println(x); } Fichier: Depart.java La classe Depart doit être déposée dans un fichier Depart.java Quand tous les champs et les méthodes sont statiques, il n'y a pas besoin d'instanciation Le système recherche et appelle une méthode main définie comme ci-dessus

Faculté I&C, Claude Petitpierre, André Maurer 3 Classes Java (package) package modules; public class Depart { public static int x = 0; public static void main(String[] args) { System.out.println(args.length); } Fichier Depart.java dans répertoire modules La classe ci-dessus contient package, elle doit être déposée dans un répertoire src/modules

Faculté I&C, Claude Petitpierre, André Maurer 4 Répertoires Java package modules; import actions.Mouvement; import actions.*; public class Depart { public static int x = 0, y = 0; public static void main(String[] args) { Mouvement.descend(); System.out.println(args.length); } package actions; public class Mouvement { public static void descend() { System.out.println("descendre"); } // répertoires src actions Mouvement.java modules Depart.java indique où se trouve les autres classes

Faculté I&C, Claude Petitpierre, André Maurer 5 Objets et classes package actions; import modules.Cercle; public class Main { public static void main(String[] args) { Cercle cercle = new Cercle(); cercle.setX(100); } // Pas de statique dans la classe instanciée (les statiques sont globales) // cercle est local à main package modules; public class Cercle { private int x = 0; public int getX() { return x; } public void setX(int x) { this.x = x; }

Faculté I&C, Claude Petitpierre, André Maurer 6 Entrer dans le monde d'objets (plus de statiques) package actions; public class Programme { int x = 12; void run() { // code du programme System.out.println(x);... } package actions; import modules.Cercle; public class Main { public static void main(String[] args) { new Programme().run(); } Plus de statiques StatiqueObjets

Faculté I&C, Claude Petitpierre, André Maurer 7 Héritage ( extends, implements ) public class GraphicPanel extends JPanel { public int color = 255 * 256 * 256; public int x = 0; public int y = 0; public void paint(Graphics g) { g2.clearRect(0, 0, getWidth(), getHeight()); g2.setColor(new Color(color)); g2.fillArc(x, y, 40, 40, 45, 315); } GraphicPanel obtient toutes les propriétés ou attributs et méthodes de JPanel GraphicPanel est un JPanel paint remplace la méthode paint définie dans JPanel

Faculté I&C, Claude Petitpierre, André Maurer 8 Interface package actions; public interface Face { int get(); // doit être implémentée dans la classe qui hérite } package actions; import java.util.ArrayList; public class MyFace implements Face{ public int get() { // TODO Auto-generated method stub return 0; } } // une interface donne une vue homogène des objets qui l'implémentent

Faculté I&C, Claude Petitpierre, André Maurer 9 Instructions ( Java – Javascript ) String [ ] a = new String[10]; for (int i=0; i<a.length; i++) { } if (a[0].equals("xxx")) { a[0] = "yyy"; } else { a[0] = "zzz"; } int i = 0; while(true) { i += 1; if (i<10) { continue; } break; } switch (i) { case 1: i = 10; break; } var a = new Array(10); for (var i=0; i<a.length; i++) { } if (a[0] == ("xxx")) { a[0] = "yyy"; } else { a[0] = "zzz"; } var i = 0; while(true) { i += 1; if (i<10) { continue; } break; } switch (i) { case 1: // peut contenir des strings i = 10; break; }

Faculté I&C, Claude Petitpierre, André Maurer 10 String ( Java – Javascript ) var s = "abcd" s.charAt(1) s.indexOf("bc") s.substring(2, s.length) s.lastIndexOf("b") var s1 = s.replace("b", "X") alert(s1) String s = "abcd"; s.charAt(1); s.indexOf("bc"); s.substring(2, s.length()); s.lastIndexOf("b"); String s1 = s.replace("b", "X"); System.out.println(s1);

Faculté I&C, Claude Petitpierre, André Maurer 11 Tableaux ( Java – Javascript ) var a = new Array(10); var arr = [] arr[0] = "Hans" var x = arr[0] var n = arr.length arr.push("Max") x = arr.pop(); arr.unshift("Moritz") var s2 = arr.shift() alert(arr.join()) String a[] = new String[10]; // longueur fixe ArrayList arr = new ArrayList (); arr.set(0,"Hans"); String x = arr.get(0); int n = arr.size(); arr.add("Max"); x = arr.remove(arr.size()-1); arr.add(0,"Moritz"); String s2 = arr.remove(0); System.out.println(arr);

Faculté I&C, Claude Petitpierre, André Maurer 12 Tableaux associatifs ( J – JS ) var hm = [ ] hm["manager"] = "Hans" hm["manager"] var hs = { } // sans méthodes hs["manager"] = true hs["employe"] = true for (var i in hs) { alert(i) } HashMap hm = new HashMap (); hm.put("manager", "Hans"); hm.get("manager"); HashSet hs = new HashSet (); // ensemble: sans doublons hs.add("manager"); hs.add("employe"); for (String i: hs) { System.out.println(i); }

Faculté I&C, Claude Petitpierre, André Maurer 13 Tris public class Tri { public static void main(String[] args) { ArrayList liste = new ArrayList (); liste.add("Moritz"); liste.add("Graetel"); Collections.sort(liste); System.out.println(liste); } function execute() { var liste = [ ] liste.push("Moritz") liste.push("Graetel") liste.sort() alert(liste); }

Faculté I&C, Claude Petitpierre, André Maurer 14 Objets et classes ( J – JS ) public class Main { public static void main (String[] args) { } public class Cercle { public Cercle() {... } // constructeur public int getX() { return x; } // fonction globale function main (args) { } function Cercle () { this.getX = function () { return x } }

Faculté I&C, Claude Petitpierre, André Maurer 15 Architecture des fenêtres graphiques JFrame JPanel + layout Les éléments graphiques sont inscrits directement dans le panel JPanel + layout JButton Généré au moyen de Visual Editor

Faculté I&C, Claude Petitpierre, André Maurer 16 Affichage d'éléments graphiques JPanel paint() { sait appeler les enfants des éléments graphiques (boutons, fields …) qui contiennent à leur tour des paint() les feuilles dessinent les composants } paint est appelée automatiquement quand la fenêtre doit être rafraîchie, c'est-à-dire: lorsqu'elle est crée lorsqu'elle revient au-dessus des autres fenêtres lorsqu'elle a été modifiée lorsqu'on le demande en appelant jPanel.repaint()

Faculté I&C, Claude Petitpierre, André Maurer 17 Création d'un champ de texte avec listener ( généré par Visual Editor ) private JTextField getJTextField() { if (jTextField == null) { jTextField = new JTextField(); jTextField.addActionListener( new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { System.out.println( jTextField.getText() ); } ); lecture du champ } return jTextField; } // actionPerformed est appelée quand on tape CR dans le champ de texte

Faculté I&C, Claude Petitpierre, André Maurer 18 Création de graphiques public class GraphicPanel extends JPanel { public int color = 255 * 256 * 256; public int x = 0; public int y = 0; public void setXY(int x, int y) { // méthodes de travail this.x = x; this.y = y; repaint(); } public void paint(Graphics g) { // remplace la méthode originale g2.clearRect(0, 0, getWidth(), getHeight()); // == this.getHeight g2.setColor(new Color(color)); g2.fillArc(x, y, 40, 40, 45, 315); } } // peut être introduit à la place d'un JPanel (c'est aussi un JPanel)

Faculté I&C, Claude Petitpierre, André Maurer 19 Introduction du JPanel graphique et d'un listener private GraphicPanel getGraphicPanel() { if (graphicPanel == null) { graphicPanel = new GraphicPanel(); graphicPanel.setLayout(new GridBagLayout()); graphicPanel.addMouseMotionListener( new java.awt.event.MouseMotionAdapter() { public void mouseMoved(java.awt.event.MouseEvent e) { graphicObjet.getGraphicPanel().setXY(e.getX(), e.getY()); } ); } return (GraphicPanel) graphicPanel; } // généré automatiquement par Visual Editor (plugin Eclipse) modifié après génération Ajouté

Faculté I&C, Claude Petitpierre, André Maurer 20 Listener du bouton private JButton vert = null; private JButton getVert() { if (vert == null) { vert = new JButton(); vert.setText("Vert"); vert.addActionListener( new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { GraphicPanel gp = ((GraphicPanel)thisClass.getGraphicPanel()); gp.color = 255<<8; gp.repaint(); } } // code exécuté dans le listener ); } // appelle le paint de GraphicPanel (l'arbre s'il y en a un) return vert; }

Faculté I&C, Claude Petitpierre, André Maurer 21 Interval timer ( listener ) new Timer( // créé dans le programme principal 100, new AbstractAction() { public void actionPerformed(ActionEvent e) { thisClass.getGraphicPanel().computePosition(); } ).start();

Faculté I&C, Claude Petitpierre, André Maurer 22 JFrame > JPanel > JPanel Palette > Choose Bean

Faculté I&C, Claude Petitpierre, André Maurer 23 Layouts

Faculté I&C, Claude Petitpierre, André Maurer 24 BorderLayout NORTH EAST WEST SOUTH CENTER

Faculté I&C, Claude Petitpierre, André Maurer 25 FlowLayout

Faculté I&C, Claude Petitpierre, André Maurer 26 BoxLayout(Y)

Faculté I&C, Claude Petitpierre, André Maurer 27 GridLayout private JPanel getJContentPane() { if (jContentPane == null) { GridLayout gridLayout = new GridLayout(); gridLayout.setRows(2);...

Faculté I&C, Claude Petitpierre, André Maurer 28 GridBagLayout Sur deux colonnes Pas élastique

Faculté I&C, Claude Petitpierre, André Maurer 29 Introduction d'un listener Bouton droit de la souris

Faculté I&C, Claude Petitpierre, André Maurer 30 Timer et mouvement public MultiPanel() { super(); // généré automatiquement dans la JFrame initialize(); new Timer(100, new ActionListener(){ // copier-coller ce timer public void actionPerformed(ActionEvent e) { getGraphic().x1 += 5; // mise à jour des coordonnées getGraphic().y1 += 5; getGraphic().repaint(); // demander de repeindre le panel } }).start(); // démarrage du timer } Dans la classe de la JFrame:

Faculté I&C, Claude Petitpierre, André Maurer 31 Graphic panel public int x=50,y=50,x1=10,y1=10; public int color = 100*256* * ; // rgb: red green blue public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; // transformation normal 2D g2.clearRect(0, 0, getWidth(), getHeight()); g2.setColor(new Color(color)); g2.fillArc(x, y, 40, 40, 45, 315); g2.setColor(new Color(0)); g2.fillArc(x1, y1, 40, 40, 0, 360); } Création d'un JPanel + adjonction de ces instructions Ajouter ce JPanel au JFrame au moyen de Palette > Choose Bean Graphics Graphics2D

Faculté I&C, Claude Petitpierre, André Maurer 32 Complétion CTRL- espace Sélectionner Cliquer