• Aucun résultat trouvé

M1 Programmation avanc´ee et r´epartie en Java : TP 5

N/A
N/A
Protected

Academic year: 2022

Partager "M1 Programmation avanc´ee et r´epartie en Java : TP 5"

Copied!
2
0
0

Texte intégral

(1)

M1 Programmation avanc´ee et r´epartie en Java : TP 5

Jean Fortin et Fr´ed´eric Gava

[email protected] ou [email protected]

1 Exercice 1 : une Applet Java

L’invocation de la m´ethode ”paint(Graphics g)” assure la r´eactualisation du contexte graphique de l’applet. Elle sera appel´ee `a chaque fois qu’il est n´ecessaire de redessiner le contenu de l’applet. C’est cette m´ethode que nous allons surcharger pour faire de “beaux”

dessins.

1. Cr´eer une classe ”FigureGraphique” qui ´etend la classe ”Applet”. Vous red´efinirez la m´ethode ”paint” : celle-ci devra afficher le texte ”Hello World !” `a l’aide de la m´ethode

”drawString” de la classe ”Graphics” (faire ”import java.awt.Graphics”). Compilez.

2. Cr´eez un fichier d’extension html contenant le code permettant d’invoquer l’appet

”FigureGraphique”. Exemple :

<HTML>

<HEAD>

<TITLE> Ma page web </TITLE>

</HEAD>

<APPLET CODE=FigureGraphique.class WIDTH=400 HEIGHT=400> </APPLET>

</HTML>

3. Vous pouvez ´evaluer voq qualit´es artistiques en ex´ecutant l’applet avec appletviewer ou firefox. Dans le cas o`u vous utilisez un navigateur, forcez le rechargement de l’image (F5) car des param`etres de cache peuvent vous emp´echer de voir les diff´erences entre 2 ex´ecution de l’applet.

4. ´Ecrivez une classe ”Figure” et 2 h´eriti`eres : ”Carre” et ”Rectangle”.

5. Cherchez dans la doc de Graphics des m´ethodes qui vous permettront de dessiner des carr´es et des rectangles de couleur. Modifiez votre classe ”FigureGraphique”. Un attribut de vecteur de ”Figure” sera initialis´e avec des carr´es et des rectangles. La m´ethode ”paint” permettra de dessiner les ”Figure” du vecteur.

6. Pour comprendre comment disposer vos figures dans une fenˆetre, faites varier les valeurs des diff´erents param`etres de taille et de position de vos figures et observez les r´esultats obtenus.

2 Exercice 2 : Applet Java et Swing

Une applet java peut ˆetre programm´ee en utilisant la classe JApplet, au lieu de JFrame.

Au lieu de la m´ethode main, les m´ethodes suivantes contrˆolent le d´eroulement de l’applet : – public void init() { ... }

1

(2)

– public void start() { ... } – public void stop() { ... } – public void destroy() { ... }

Ces m´ethodes peuvent ˆetre surcharg´ees par le programmeur, et sont appel´ees automatique- ment. Ainsi, la d´efinition des contrˆoles/layouts pr´esents dans la JApplet peut se faire dans la m´ethodeinit.

1. Cr´eer une applet Java, comprenant une zone de texte et un bouton. Un clic sur le bouton devra modifier le texte affich´e.

2. Lancer l’applet dans le viewer.

3. Cr´eer une page html, comprenant une balise<APPLET>pour int´egrer l’applet dans la page web. (voir page 304 des notes du cours pour la syntaxe de cette balise).

3 Exercice 3 : des codes JNI, des m´ ethodes natives

Les codes C sont r´eput´es pour la vitesse d’ex´ecution notament pour le calcul num´erique.

1. ´Ecrire une m´ethode native qui calcul la soustraction de deux entier et l`eve une excep- tion si l’entier r´esultant est inf´erieur `a 0.

2. ´Ecrire une m´ethode native qui calcul la transpos´ee d’une matrice de floats. 2 mani`eres.

(a) la transpos´ee remplace la matrice donn´ee

(b) on retourne une nouvelle matrice transpos´ee de celle donn´ee en param`etre

2

Références

Documents relatifs

— En suivant l’organisation d´ ecrite ci-dessus, la compilation des sources d’une s´ eance de TP peut se faire avec la commande suivante, en se pla¸ cant ` a la racine de

Il faut des classes final (ou record) pour maintenir la restriction de hi´ erarchie (branche) ou non−selead (mais cela limitera le

R´ ealiser en Swing un formulaire comprenant un champ de saisie, un bouton et une plage de texte (pour afficher la r´ eponse ` a la question). Utilisez un (ou plusieurs, si

dans le cas d’un mono-processeur/coeur, c’est le Thread demandeur qui ex´ ecute le code qui est actif. sinon, le temps de r´ ecup´ erer le bool´ een d’un (imaginaire) isActif(),

Cr´ eer une classe Balle, ´ etendant Thread, telle que le constructeur ajoute un JLabel dans le JPanel central ` a une position al´ eatoire, et que la m´ ethode run fasse bouger

Le thread qui ex´ ecute wait() est mis dans un pool d’attente ; quand il en sort il “revient” dans le bloc synchronized et entre en comp´ etition avec d’autres threads pour

Cr´ eer une m´ ethode lancerThread (dans la classe principale) cr´ eant un Thread bas´ e sur le Runnable ci-dessus, et le d´ emarrant4. Dans une m´ ethode main, cr´ eer un objet de

1 M´ ethodes sp´ ecifiques aux Applets et qui leur permettent de demander au navigateur des informations ou des actions li´ ees au contexte : informations sur la page HTML