0% ont trouvé ce document utile (0 vote)
56 vues39 pages

IHM1

Télécharger au format pptx, pdf ou txt
Télécharger au format pptx, pdf ou txt
Télécharger au format pptx, pdf ou txt
Vous êtes sur la page 1/ 39

IHM EN JAVA

PARTIE 1 : INITIATION JAVA

Pr A. Majda
2017 - 2018
DÉROULEMENT DU COURS
 Initiation au Langage Java
 Introduction
 Outils de développement
 Données, Types et Operateurs
 Les structures alternatives et répétitives
 Les tableaux de données et chaines de caractères
 Les instructions d’écriture et de lecture

 Java Orienté Objet


 Classes et Objets
 Héritage
 Packages
 Classes internes et Interfaces
 Les exceptions

 Introduction aux IHMs


 Ergonomie
 Le patron d’architecture logicielle MVC
 Evolution des IHM dans le temps

 Eléments de base d’une IHM Java


 Composants de base
 Composants SWING
 Les conteneurs
 Les composants atomiques
 Evènements & Ecouteurs
 Principes programmation évènementielle
 Listeners java
 Gestionnaires de positionnement
2
 Connexion à une base de données
INTRODUCTION

C’est quoi Java ?

 Un langage de programmation à usage général,


 Évolué
 Orienté objet dont la syntaxe est proche du C

Il existe 2 types de programmes en Java :


 Application : s'exécute localement sous le contrôle direct du
système d'exploitation.
 Applet : chargée par un navigateur et est exécutée sous le
contrôle d'un plugin de ce dernier.

3
INTRODUCTION

Caractéristiques de Java
 Java est interprété : Interpréteur JVM
 Java est indépendant de toute plate-forme
 Java est orienté objet
 Java est simple
 Java est fortement typé : Toute variable a son type
 Java assure la gestion de la mémoire : GC
 Java est sûr : Aucune menace au SE
 Java est économe : Petite taille du pseudocode
 Java est multitâche : Threads

4
INTRODUCTION

Principes de fonctionnement de Java

 Source Java
Fichier utilisé lors de la phase de programmation
Le seul fichier réellement intelligible par le programmeur
 Byte-Code Java
ou Pseudocode : Code objet destiné à être exécuté sur toute « Machine Virtuelle »
Java
Provient de la compilation du code source
 Machine Virtuelle Java
Programme interprétant le Byte-Code Java et fonctionnant sur un système
d’exploitation

NI : il suffit de disposer d’une « Machine Virtuelle » Java pour pouvoir exécuter tout
programme Java même s ’il a été compilé avec un autre système d’exploitation 5
INTRODUCTION

Les différentes éditions de Java


 Le JRE (Java Runtime Environment) contient l'environnement d'exécution de
programmes Java : JVM
 Le JDK (Java Development Kit, SDK) pour la compilation de programmes
Java. Il contient lui même le JRE

Trois éditions de Java existent :


 J2ME : Java 2 Micro Edition  développer des applications dans des
environnements limités : PDA, GSM,…
 J2SE : Java 2 Standard Edition  développer des applications pour les postes
clients.
 J2EE : Java 2 Entreprise Edition  développer des applications d’un serveur,
destinées aux entreprises

 Dans la suite on va s’intéresser principalement aux API fournies par Java SE


6
INTRODUCTION

Bref historique de Java


Les principaux événements de la vie de Java sont les suivants :
Année Événements
1995 Premier lancement commercial
1996 JDK 1.0
1997 JDK 1.1
1998 Lancement de J2SE
2000 J2SE 1.3
2002 J2SE 1.4
2004 J2SE 5.0
2006 J2SE1.6  Java SE1.6 ou Java SE6.0
2011 Java SE 7
2014 Java SE 8 7
OUTILS DE DÉVELOPPEMENT

Installation du  Java SE Development Kit 8


 Le JDK et la documentation sont librement téléchargeable sur le
site web de Oracle http://
www.oracle.com/technetwork/java/javase/downloads/jdk8-dow
nloads-2133151.html

 Télécharger et d'exécuter le programme


Java SE Development Kit 8 : jdk-8u60-windows-x64.exe

8
OUTILS DE DÉVELOPPEMENT

La compilation d'un fichier source Java

Édition
Editeur de texte, EDI(Eclipse)  nomfichier.java

Compilation
nomfichier.java  nomfichier.class

le pseudo code
Fichier Source
Java

Remarque : Le nom du fichier doit correspondre exactement au nom de la classe


principale 9
OUTILS DE DÉVELOPPEMENT

Exécution d’une application java


Un programme java est une classe  fonction main()
Pour exécuter le fichier source précèdent :
Java nomfichier

Exécution d'une applet


<HTML>
<TITLE> test applet Java </TITLE>
<BODY>
<APPLET code="NomFichier.class" width=270 height=200> </APPLET>
</BODY>
10
</HTML>
OUTILS DE DÉVELOPPEMENT

Installation de Eclipse

 Environnement de développement intégré de java


 Le téléchargement se fait à partir du site www.eclipse.org
 Pour Windows, le fichier à télécharger est un fichier zip :
http://download.eclipse.org/eclipse/downloads/drops4/R-4.4.2-20150
2041700/

11
OUTILS DE DÉVELOPPEMENT

Installation de Eclipse

12
OUTILS DE DÉVELOPPEMENT (ALTERNATIVE 2)

Installation de Eclipse
L'installation consiste simplement à décompresser le fichier.
Pour le lancement exécuter le fichier eclipse.exe

13
OUTILS DE DÉVELOPPEMENT

Des ressources sur Java


 Site de Java
www.oracle.com/fr/java/overview/index.html
 Cours et exemples :
Programmer en Java (2ème édition)
Auteur : Claude Delannoy, Éditeur : Eyrolles
Java en action
Auteur : Ian F. Darwin, Éditeur : O’Reilly
Exercices en Java
Auteur : Claude Delannoy, Éditeur : Eyrolles
Penser en Java (sur le web)
Auteur : B. Eckel 2ème édition, sur le web.
web : java.developpez.com 14
LA STRUCTURE D'UN PROGRAMME JAVA

Forme générale d’un programme Java


public class test1{ Le fichier doit porter
public static void main (String arg[]){ le nom de la classe
… code du programme publique : test1
System.exit(0);
} // fin main
} // fin class

La fonction main est exécutée la première lors de l'exécution d'un programme Java.
Elle doit avoir obligatoirement la signature précédente :
public static void main(String arg[]){
ou
public static void main(String[] arg){
Le nom de l'argument arg peut être quelconque. 15
LA STRUCTURE D'UN PROGRAMME JAVA

L‘instruction d’Arrêt

La méthode exit définie dans la classe System permet d'arrêter


l'exécution d'un programme.
syntaxe void exit(int status)
arrête le processus en cours et rend la valeur status au processus père
Exemple :
System.exit(0);
pour arrêter le programme avec une valeur d'état à 0.

16
DONNÉES, TYPES ET OPERATEURS EN JAVA

Java utilise les types de données suivants :


• les nombres entiers
• les nombres réels
• les caractères et chaînes de caractères
• les booléens
• les objets

17
DONNÉES, TYPES ET OPERATEURS EN JAVA

Les types

Type Codage Domaine


boolean 1 bit true, false
byte 1 octet -128 à 127
short 2 octets -32768 à 32767
char 2 octets car. Unicode 0 à 65535
Int 4 octets -2147483648 à 2147483647
float 4 octets [3.4 10-38, 3.4 10+38]
long 8 octets [-2e63, 2e63 -1]
double 8 octets [1.7 10-308,1.7 10+308]
Character réf. d'objet char
Integer réf. d'objet int
Long réf. d'objet long
Byte réf. d'objet byte
Float réf. d'objet float
Double réf. d'objet double
Boolean réf. d'objet boolean 18
DONNÉES, TYPES ET OPERATEURS EN JAVA

Notation des données littérales

entier 145, -7, 0xFF (hexadécimal)


réel double 134.789, -45E-18 (-45 10-18)
réel float 134.789F, -45E-18F (-45 10-18)
caractère 'A', 'b'
chaîne de caractères "aujourd'hui"
booléen true, false
date new Date(13,10,1954) (jour, mois, an)

19
DONNÉES, TYPES ET OPERATEURS EN JAVA

Déclaration des données

 Pour les constantes :


final type nom = valeur; //définit constante nom=valeur

Exemple
final float PI = 3.141592F;

 Déclaration des variables


identificateur_de_type variable1, variable2, ...;
Exemple
long l1; // déclaration de l1 est de type prédéfini long
float pi = 3.141f; // déclaration et initialisation de pi
MaClasse instance; // déclaration de l'objet instance
instance = new MaClasse(); // création de l'objet //allocation de
mémoire pour instance
20
DONNÉES, TYPES ET OPERATEURS EN JAVA

Les identificateurs
 Chaque objet, classe, programme ou variable est associé à un nom :
l'identificateur
 Le premier caractère doit être une lettre, le caractère de
soulignement ou le signe dollar.
 Java est sensible à la casse.
 Un identificateur ne peut pas appartenir à la liste des mots réservé
du langage Java ex :

abstractboolean catch class default


do else false final if
import implements instanceof interface long
native new null … 
21
DONNÉES, TYPES ET OPERATEURS EN JAVA

Les conversions entre nombres et chaînes de caractères

nombre -> chaîne "" + nombre


chaine -> int Integer.parseInt(chaine)
chaîne -> long Long.parseLong(chaine)
chaîne -> double Double. parseDouble(chaine)
chaîne -> float Float.valueOf(chaine)
Exemple
String S;
final long l=100000;
S=""+l; // nombre --> chaîne
final boolean b=false;
S=""+b; //boolean --> chaîne
int i1=Integer.parseInt("10"); // chaîne --> int
float f1=Float.parseFloat("100.87"); // chaîne --> float 22
DONNÉES, TYPES ET OPERATEURS EN JAVA
Les opérateurs en java et leur priorité
les parenthèses ( )
les opérateurs d'incrémentation ++ --
les opérateurs de multiplication, division, et * / %
modulo
les opérateurs d'addition et soustraction + -
les opérateurs de décalage << >>
les opérateurs de comparaison < > <= >=
les opérateurs d'égalité == !=
l'opérateur OU exclusif ^
l'opérateur ET &
l'opérateur OU |
l'opérateur ET logique &&
l'opérateur OU logique ||
les opérateurs d'assignement = += 23
-=
DONNÉES, TYPES ET OPERATEURS EN JAVA

L’opérateur cast
Permet, dans une expression, de changer le codage d'une valeur.
On appelle cela changement de type d'une donnée ou en anglais type casting.

Syntaxe : (type) valeur;


La valeur prend alors le type indiqué. Cela entraîne un changement de
codage de la valeur.

Exemple :
int i, j;
float f;
f= (float)i/j; // priorité de () sur /
24
LES STRUCTURES ALTERNATIVES ET
RÉPÉTITIVES
Les structures alternatives

 Structure de choix simple

if (boolean)
{ ... } else
{ ... }

 Structure de choix multiple

swith (expression)
{ case c1 : instr11; instr12; break;

case cn : ...
default : ...
}
 Opérateur ternaire

( condition ) ? valeur_vrai : valeur_faux ;


25
LES STRUCTURES ALTERNATIVES ET
RÉPÉTITIVES

Les structures répétitives


1. while ( boolean )
{ ... // code a exécuter dans la boucle }
2. do
{ ... } while ( boolean );
3. for ( initialisation; condition; modification)
{ ... }

Exemple

boolean trouve = false;
for (int i = 0 ; !trouve ; i++ )
{ if ( tableau[i] == 1 ) trouve = true; ... //gestion de la fin du parcours du tableau
} … 26
LES STRUCTURES ALTERNATIVES ET
RÉPÉTITIVES
Les débranchements
 break : permet de quitter immédiatement une boucle ou un branchement.
 continue : s'utilise dans une boucle pour passer directement à l'itération
suivante

Exemple
int compteur = 1,c=1;
while (compteur < 200)
{ compteur *= c;
if ((compteur %5)==0) {System.out.println("compteur="+compteur+"
c="+c);break; }
c++;
}
Rq : Il est possible de nommer une boucle pour permettre de
l'interrompre 27
LES TABLEAUX DE DONNÉES ET CHAINES DE
CARACTÈRES
Les tableaux de données

Un tableau Java est un objet permettant de rassembler sous un même identificateur des données de
même type.

Un tableau à 1D : Type Tableau[ ]=new Type[n]


ou Type[ ] Tableau= new Type[n]

n : le nombre de données que peut contenir le tableau.


Tableau[i] : la donnée n° i où i Є [0,n-1].
NB : Toute référence à la donnée Tableau[i] où i n’appartient pas [0,n-1] provoquera une exception.

Un tableau à 2D : Type Tableau[ ][ ]=new Type[n][p]


ou Type[ ][ ] Tableau=new Type[n][p]

Tableau[i] désigne lui-même un tableau


Tableau[i][j] désigne la donnée n° j de Tableau[i] où j Є [0,p-1].
28
LES TABLEAUX DE DONNÉES ET CHAINES DE
CARACTÈRES
Tableaux dont les éléments sont eux mêmes des tableaux
Déclaration tab null
type[ ][ ] tab;

Tableaux rectangulaires
Dimensionnement : tab . . .
tab= new type[2][3]; . . .

Tableaux non-rectangulaires
tab null
Dimensionnement :
tab= new type[2]; null

tab [0] = new type[2]; tab . .


tab [1] = new type[3]; . . .
29
LES TABLEAUX DE DONNÉES ET CHAINES DE
CARACTÈRES
Exemple
public class test1{
public static void main(String arg[ ]){
float[ ][ ] taux=new float[2][2];
taux[ 1][0]=0.24F;
taux[1][1]=0.33F;
System.out.println(" longueur demandée est " + taux[1].length);
System.out.println(taux[1][1]);
}
}
les résultats de l'exécution :
longueur demandée est 2
0.33
Rappel : le fichier du code source doit avoir le nom test1.java

30
LES TABLEAUX DE DONNÉES ET CHAINES DE
CARACTÈRES
La manipulation des chaînes de caractères
Les variables de type String sont des objets
Exemple : String texte = "bonjour";

 Modification d’une chaîne :


String texte = " java".replace('a','o');
 Addition de chaînes :
texte += " Programmation ";
 La comparaison de deux chaînes :
if (texte1.equals(texte2))
 La détermination de la longueur d'une chaîne :
int i=texte.length();
 La modification de la casse d'une chaîne :
String textemaj = texte.toUpperCase();
String textemaj = texte.toLowerCase();
 Convertir une Chaine de caractères en un tableau de caractères:

String nom=s.nextLine();
char[] ch=nom.toCharArray();
31
LES INSTRUCTIONS D’ÉCRITURE ET
LECTURE

Écriture sur écran


La syntaxe de l'instruction d'écriture sur l'écran est la suivante
System.out.println(expression) ;
ou System.err.println(expression);
où expression est tout type de donnée qui puisse être converti en chaîne
de caractères pour être affiché à l'écran.

Exemple
System.out.println(" longueur demandée est " + taux[1].length);
System.out.println(taux[1][1]);
System.err écriture des messages d’erreurs :
System.err.print("Attention!!!"); Attention!!! 32
LES INSTRUCTIONS D’ÉCRITURE ET
LECTURE
Lecture de données tapées au clavier (Alternative1)
 Le flux de données provenant du clavier est désigné par l'objet
System.in de type InputStream.
 Ce type d'objets permet de lire des données caractère par
caractère.
 Pour lire d'un seul coup une ligne de texte on utilise le type
BufferedReader avec la méthode readLine.
BufferedReader IN=
new BufferedReader(new InputStreamReader(System.in));
String ligne;
ligne=IN.readLine();
 L’utilisation de ces classes nécessite l’importation du
paquetage de flux d’E/S java.io 33
LES INSTRUCTIONS D’ÉCRITURE ET
LECTURE
Exemple // lecture d'une ligne saisie au clavier
import java.io.*;

String ligne; // lecture d'une ligne saisie au clavier
BufferedReader IN=null;
try{
IN=new BufferedReader(new InputStreamReader(System.in));
} catch (Exception e){ System.err.print(e); System.exit(1); }
System.out.print("Tapez une ligne : ");
ligne=IN.readLine(); System.out.println("ligne="+ligne);

N.I. : La construction d'un flux peut échouer  Génération d’une exception (erreur) en
Java
le compilateur Java exige que toute exception susceptible d’être générée soit gérée par le
programmeur. 34
LES INSTRUCTIONS D’ÉCRITURE ET
LECTURE
try{
ligne=IN.readLine();
System.out.println("ligne="+ligne);
} catch (Exception e){
affiche(e);
System.exit(2);
}
} //fin main
public static void affiche (Exception e){
System.err.println("Erreur : "+e);
}
} //fin classe
N.I. Lecture des données d’autres types  readLine et les méthodes de conversion de
35
types
LES INSTRUCTIONS D’ÉCRITURE ET
LECTURE

Lecture de données tapées au clavier (Alternative2)

Depuis le JDK 5 la classe Scanner permet de récupérer des


données au milieu d’un flot d’entrée, à l’image de la fonction scanf
du langage C

 On crée une instance de Scanner avec un de ses nombreux


constructeurs

 On lui passe en paramètre le flot d’entrée dans


lequel on va extraire les données ;

36
LES INSTRUCTIONS D’ÉCRITURE ET
LECTURE

Exemple
Importer la classe Scanner :
Import java.util.Scanner;

Pour lire l’entrée standard :


Créer un objet de type Scanner
Scanner sc = new Scanner(System.in);
On extrait ensuite les données une à une avec une des méthodes nextXXX :
lire un entier :
int j;
System.out.println(« Entrez un entier ");
j=sc.nextInt();

37
LES INSTRUCTIONS D’ÉCRITURE ET
LECTURE

next ()  saisir une valeur de type String (sans espace)


nextLine ()  saisir une valeur de type String
next ().charAt(0)  saisir une valeur de type char
nextByte()  saisir une valeur de type byte
nextShort()  saisir une valeur de type short
nextInt()  saisir une valeur de type int
nextLong()  saisir une valeur de type long
nextFloat()  saisir une valeur de type float
nextDouble()  saisir une valeur de type double

38
LES INSTRUCTIONS D’ÉCRITURE ET LECTURE

EXEMPLE


System.out.println("bonjour");
Scanner s = new Scanner(System.in);
System.out.print("donner votre nom");
String nom = s.next();
System.out.print("donner votre age");
int age = s.nextInt();
System.out.print(" Age est "+age+" Nom est "+nom);

Il n’est pas obligatoire de :
1. gérer les IOException car les méthodes de Scanner ne lèvent
pas cette exception
2. Créer plusieurs objets type Scanner pour lire des données
differentes
39

Vous aimerez peut-être aussi