• Aucun résultat trouvé

Programmation avanc´ee et r´epartie en Java : TP 3

N/A
N/A
Protected

Academic year: 2022

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

Copied!
2
0
0

Texte intégral

(1)

Programmation avanc´ee et r´epartie en Java : TP 3

Jean Fortin et Fr´ed´eric Gava

gava@u-pec.fr ou jean.fortin@gmail.com

1 Exercice 1

Le but de cet exercice est de mettre en pratique deux m´ethodes vues en cours pour cr´eer des Threads. Pensez `a compiler votre code apr`es chaque question, et `a l’ex´ecuter lorsque possible (apr`es les questions 3 et 5). Respectez les consignes vues lors du premier TP.

1. Cr´eer une classe vide Exercice1 dans un package appropri´e (toujours en respectant l’arborescence des sources vue au premier cours).

2. Dans la classe Exercice1, d´eclarer une classe interne MonRunnable, impl´ementant l’interface Runnable. Afficher un message en ligne de commande dans la m´ethode run.

3. Cr´eer un constructeur dans la classe Exercice1. Dans ce constructeur, cr´eer un objet Threaden donnant en argument au constructeur une instance de la classeMonRunnable.

Lancer le thread en appelant sa m´ethode start. Ajouter une m´ethode main qui cr´ee une instance de Exercice1.

4. Maintenant, cr´eer une classeMonThread, toujours dans la classeExercice1, qui ´etende la classe Thread. Ecrire un autre message dans sa m´ethoderun.

5. Ajouter dans le constructeur de Exercice1 le lancement d’une instance de la classe MonThread.

2 Exercice 2

1. Reprendre le Thread Compteur d´ecrit dans le cours puis ´ecrire un ”main” qui lance plusieurs Compteurs en parall`ele et observer l’ordonnancement.

2. Quel thread est actif et `a quel moment ?

3. Reprendre de mˆeme la classe Compteur2 du cours, et ´ecrire une m´ethode main as- soci´ee. Observer le r´esultat.

3 Exercice 3

Le but de l’exercice est d’afficher un texte anim´e (par un effet de d´eroulement).

1. Concevoir une fenˆetre swing contenant un JLabel avec le texte de votre choix, et deux JButton “D´emarrer” et “Arrˆeter”. Utiliser le layout de votre choix.

2. Ajouter des gestionnaires d’´evenement pour ces deux bouttons.

1

(2)

3. Ajouter un thread qui modifie toutes les 100 millisecondes (m´ethodesleep) le texte du JLabel, en d´ecallant le caract`ere de droite pour le placer tout `a gauche. Le thread devra s’ex´ecuter tant qu’il n’est pas interrompu par le bouton “Arrˆeter”. Utiliser la Javadoc de la classe String pour trouver les m´ethodes de traitement de chaˆınes n´ecessaires.

4 Exercice 4

1. En vous inspirant de l’exercice pr´ec´edent, r´ealiser un composant Swing affichant une image anim´ee.

5 Exercice 5

1. Cr´eer une interface graphique Swing comprenant 2 JPanels dans un BorderLayout, au centre et `a droite.

2. Dans le JPanel de droite, ajouter trois boutons, avec les texte “Ajouter un Thread”,

“Ajouter 10 Threads”, et “Ajouter 100 Threads”.

3. 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 JLabel `a vitesse constante, en le faisant rebondir contre les bords du JPanel. On utilisera le NullLayout pour le JPanel.

4. Cr´eer les gestionnaires d’´evenements pour les 3 boutons, tels qu’ils ajoutent des ins- tances de la classe Balle.

2

Références

Documents relatifs

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(),

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

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´

Le fait que tout les objets d’une classe ne soient pas atteignable n’est pas suffisant pour d´ echarger une classe Chaque classloader poss` ede un cache de l’ensemble des