Département R & T - 1er année Rushed.Kana[email protected]
TP 1 : Introduction à la programmation graphique en Java
1er février 2017
1 Programmation d’une montre digitale
On voudrais développer une class abstraite Montre qui implante une
montre digitale. La classe montre utilise une autre classe abstraite Afficheur
qui permet d’afficher l’heure. Cette classe offre deux méthodes abstraites
d’affichage de l’heure. La première méthode acceptent en entrée trois entiers
qui représentent respectivement, les heures, les minutes et les secondes. La
deuxième méthode prends en entrée une chaîne de caractères qui représente
l’heure à afficher.
Différents types d’afficheurs peuvent être imaginés alors : en mode texte,
en mode graphique, etc. Pour réaliser une classe concrète qui implante une
montre on doit alors spécifier une classe concrète d’affichage qui hérite de
la classe Afficheur et une classe concrète de montre qui hérite de la classe
Montre
Définir la classe abstraite Afficheur
public abstract class Affich eur {
public abstract void afficher(int h , int m , int s );
public abst ract void aff icher ( String s );
/* m ethode p our af fic he r l ’ he ure */
}
Définir la classe abstraite Montre
import java . text .*;
abstract class Montre extends Thread {
private int s ,m , h;
protec ted Affi cheur affiche ;
protec ted boole an am ;
private boolean mode24;
private boolean on ;
public Montre (){
this. s =0;
this. m =0;
this. h =0;
}
1
Département R & T - 1er année Rushed.Kana[email protected]
public void setH(int heure ) throws Exce ption {
if (( heure >=0) && ( heure <=23)){
this. h= heure ;
}else{
throw new E xcepti on (" ille gale ␣ heure ␣" );
}
}
public void setM(int min ) throws E xcepti on {
if (( min >=0) && ( min <=60)){
this. m= min ;
}else{
throw new E xcepti on (" ille gale ␣ Value ␣" );
}
}
public void setS(int sec ) throws E xcepti on {
if (( sec >=0) && ( sec <=60)){
this. s= sec ;
}else{
throw new E xcepti on (" ille gale ␣ heure ␣" );
}
}
public String toStrin g (){
NumberFormat f= new Deci mal Form at ( " 00 " );
return( f. format ( h)+ ":"+ f. format ( m )+ ":"+f . format ( s));
}
public Affich eur g etAf fich eur (){
return this .affiche;
}
public void run (){
while (this. on ){
try {
Thread . sleep (1000);
}catch ( Ex cept ion e ){}
this.s=this. s +1;
if (this.s==60){
this. s =0;
this.m=this. m +1;
if (this.m==60){
this. m =0;
this.h=this. h +1;
2
Département R & T - 1er année Rushed.Kana[email protected]
if (this.h==24){
this. h =0;
}
}
}
this. affiche . a fficher ( this. h , this. m , this. s );
}
}
}
Proposer une classe concrète TextAfficheur qui permet d’afficher
l’heure en mode texte.
import ja va . io .*;
import java . text .*;
class TextAfficheur extends Af ficheu r {
public void afficher(int h , int m , int s ){
NumberFormat f= new Deci mal Form at ( " 00 " );
String str = f. format ( h)+ ":"+ f. f ormat ( m )+ ":"+ f. format ( s);
System . out . println ( str );
}
}
Proposer une classe concrète TextMontre qui permet de réaliser une
Montre en mode texte. Tester.
import java . text .*;
class TextMontre extends Montre{
public TextM ontre (){
super ();
this.affiche=new TextA ffic heu r ();
}
public static void main ( String [] args ){
TextM ontre m= new Text Montr e ();
m. start ();
}
}
Proposer une classe concrète GAfficheur qui permet d’afficher l’heure
en mode graphique.
import java . awt .*;
import javax . swing .*;
import java . text .*;
3
Département R & T - 1er année Rushed.Kana[email protected]
public class GAfficheur extends A ffiche ur {
private JPanel panel ;
private JLabel label ;
public GAffi cheur (){
this. panel = new JPanel();
this.label =new JLabel();
this. p anel . add ( this.label);
}
public JPanel getPane l (){
return this . panel ;
}
public void afficher(int h , int m , int s ){
NumberFormat f= new Deci mal Form at ( " 00 " );
String str = f. format ( h)+ ":"+ f. f ormat ( m )+ ":"+ f. format ( s);
this.label . s etText ( str );
}
public void affic her ( String str ){
this.label . s etText ( str );
}
}
Proposer une classe concrète GMontre qui réalise une montre en mode
graphique. Tester
import java . awt .*;
import javax . swing .*;
class GMontre extends Montre{
public GMontre (){
super ();
this.affiche=new GA ffich eur ();
}
public static void main ( String [] args ){
JFrame f = new JFrame("GMontre");
GMontre m= new G Montre ();
GAffi cheur a = ( GAff icheu r ) m. g etAf fich eur ();
f. se tCo nten tPa ne ( a. getPa nel ());
f. set Visi ble ( true);
m. start ();
}
}
4
Département R & T - 1er année Rushed.Kana[email protected]
Modifier la montre graphique pour ajouter un buttons qui permet de
sélectionner le mode d’affichage : mode 12 ou 24.
5
1 / 5 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !