• Aucun résultat trouvé

(HyperText Markup Language)

N/A
N/A
Protected

Academic year: 2022

Partager "(HyperText Markup Language)"

Copied!
1
0
0

Texte intégral

(1)

Introduction aux applets et HTML :

A) Quelques mots du c ode HTML

(HyperText Markup Language)

Ce langage sert à définir la position et la description des éléments d'une page Web:

Observez la page Web suivante :

Quand l'usager clique sur le lien "Page Web de

la DESI", il obtient :

(2)

La page Web à la première page est construite en fonction des instructions HTML décrites dans un fichier : c'est un fichier texte ordinaire codé en ASCII qui se compose seulement avec de lettres, de chiffres, d'espaces et de caractères de ponctuation.

Pour ce fichier, un des moyens à l'éditer est d'utiliser <démarrer>-<Tous les programmes>-

<Accessoires> puis <Bloc-notes>.

(3)

<!Ce fichier a été créé le 28 octobre 2000>

<HTML>

<HEAD>

<TITLE>

Premier exemple d'un fichier html </TITLE>

</HEAD>

<BODY>

<P> <CENTER>

<H1> La DESI</H1>

<H2> La DESI</H2>

<H3> La DESI</H3>

<H4> La DESI</H4>

<H5> La DESI</H5>

<H6> La DESI</H6>

</CENTER></P>

<HR>

<A HREF="http://www.fas.umontreal.ca/DESI/">

Page Web de la DESI</A>

<A HREF="mailto:information-desi@iro.umontreal.ca">

Pour nous rejoindre</A>

</BODY>

</HTML>

Explications sommaires du fichier :

<! commentaire(s) … > => les commentaires

Dans un fichier HTML on a du texte (exemple La DESI) et de balises encadrées de crochets comme

<HTML>,<BODY>, etc . . .

Le texte est affiché directement par le navigateur et les balises donnent des directives d'affichage.

La balise <HTML> signale le début du fichier HTML et

</HTML> signale la fin.

L'en-tête est signalé par la balise <HEAD> et sa fin par </HEAD>.

Le titre est le texte se trouvant entre <TITLE> et

</TITLE>.

La commande <HR> insère une ligne horizontale.

(4)

Pour les balises, on ne distingue pas majuscule et minuscule. Par contre, on favorise des balises en

majuscules (lisibilité).

Le corps de la page est encadré entre <BODY> et

</BODY>.

<P> désigne le début d'un paragraphe et </P> la fin du paragraphe.

La commande <CENTER> provoque le centrage du texte qui suit. Les commandes <Hi> où i varie de 1 à 6 introduisent des titres (H signale headline). Observez la grosseur des caractères avec H1 (plus gros) jusqu'à H6 (plus petit).

La commande <A HREF = " . . . > indique un lien vers une page Web (ou une adresse électronique).

B) Quelques exemples sur les applets :

Une applet est un programme Java (sans méthode main) exécuté dans une page Web ou par un programme applet viewer.

1) Premier exemple : quelques figures simples

/* Premier exemple simple sur Applet :

1) Applet : petite application exécutée par un navigateur Web (exemple Netscape, Explorer, ....)

La méthode principale "void main" ne se présente pas.

2) AWT : Abstract Windowing Toolkit : un ensemble de classes pour créer, surtout, une interface utilisateur graphique Graphics est une classe de AWT

3) classe Applet : classe mère

Les applets sont des sous-classes de la classe Applet du paquetage (package) "java.applet"

C'est la raison des deux lignes d'importation

Syntaxe de quelques méthodes appliquées sur un objet (exemple g) de la classe "Graphics" :

(dessiner) afficher une chaîne à partir d'une position

g.drawString(une chaîne de caractères, abscisse, ordonnée);

(5)

tracer une ligne reliée 2 points A et B g.drawLine (A.x,A.y, B.x, B.y);

dessiner un rectangle ABCD : A B

D C

g.drawRect(A.x, A.y, largeur AB,hauteur BC);

dessiner un "arc" (d'une ellipse à l'intérieur d'un rectangle)

à faire : changer des paramètres, exécuter, observer pour comprendre le rôle de ces paramètres

g.drawArc(A.x,A.y,largeur rectangle,hauteur rectangle, angle0, angle ouverture);

*/

import java.awt.*;

import java.applet.*;

public class Applet1 extends Applet {

public void paint(Graphics g) {

g.drawString("Bonsoir", 10, 20);

g.drawString("Bonsoir", 10, 50);

g.drawString("Bonsoir", 10, 80);

g.drawLine (70,20, 150, 60);

g.drawLine (70,80, 150, 70);

g.drawRect(10, 90, 150,100);

g.drawArc(170,100,80,50, 200, 140);

g.drawOval(180,20, 260, 80);

}

}

(6)

Voici le fichier HTML qui lance cette applet :

<HTML>

<HEAD>

<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">

</HEAD>

<BODY>

<P>&nbsp;</P>

<applet

code=Applet1.class name=Applet1 width=320 height=200 >

<param name=label value="This string was passed from the HTML host.">

<param name=background value="008080">

<param name=foreground value="FFFFFF">

</applet>

</BODY>

</HTML>

(7)

2) Deuxième exemple : quelques figures simples /* Deuxième exemple simple sur Applet : affichage "ondulé" d'une chaîne de caractères

*/

import java.awt.*;

import java.applet.*;

public class Applet2 extends Applet {

//Phase initialisation d'une applet quand elle est chargée public void init() {

/* Le constructeur Font de la classe Font à 3 paramètres : Font (police, style, taille)

Quelques exemples sur style : Font.ITALIC : italique Font.BOLD : en gras Font.PLAIN : normal

Font.BOLD + Font.ITALIC : italique en gras etc ....

*/

setFont(new Font("TimesRoman", Font.PLAIN, 30));

}

public void paint(Graphics g) { // chaîne de caractères à afficher

String souhait = "Bonsoir!" ; // 8 caractères /* position de chaque lettre de la chaîne : tableau à deux indices : ce n’est plus une matière évaluée dans IFT 1170 */

int [][] position = { {20, 80 },{40, 90 },{ 60, 100 }, {80, 90 },{100, 80 },{ 120, 70 },

{140, 60 },{160, 50 }};

// imposer la couleur (ici bleue) g.setColor(Color.blue);

// affichage avec la méthode drawString for (int i = 0 ; i < souhait.length() ; i++)

g.drawString( souhait.substring(i, i+1),

position[i][0], position[i][1]);

}

}

(8)

3) Troisième exemple : dessin d’un sourire!

/* Troisième exemple simple sur Applet : un sourire

*/

import java.awt.*;

import java.applet.*;

public class Applet3 extends Applet

{ static void dessinerSourire(Graphics g) { // dessiner la figure

g.drawOval(50, 40, 100, 120);

// coin en haut, à gauche (pour l'oeil gauche) // de la classe Point : construire un point Point p = new Point(70, 80);

/* notez que les 2 champs de données x et y de la classe Point ont l'accès "public" qui est un cas très spécial g.fillRect(point.x, point.y, longueur, largeur);

ici on dessine l'oeil gauche

*/

(9)

g.fillRect(p.x, p.y, 10, 10);

// faire une translation pour le coin gauche, en haut // de l'oeil droit

p.translate(50,0);

// dessiner l'oeil droit g.fillRect(p.x, p.y, 10, 10);

// dessiner le sourire (rire à toutes les dents? (2 derniers // paramètres

g.drawArc(60,50, 70, 90, 200, 140);

}

// un cas de polymorphisme : surdéfinition de méthode static void afficher(Graphics g, String texte, int x, int y) {

g.setFont(new Font("Courier New", Font.ITALIC+Font.BOLD, 25));

g.setColor(Color.blue);

g.drawString(texte, x, y);

}

// un cas de polymorphisme : surdéfinition de méthode static void afficher(String texte, Graphics g, int x, int y) { g.setColor(Color.black);

g.setFont(new Font("Courier New", Font.PLAIN, 14));

// à essayer de comprendre en observant l’exécution for (int i = 0 ; i < texte.length() ; i++)

g.drawString(texte.substring(i, i+1), (x += 10),

((i >= texte.length()/2) ? (y +=10):(y -=10)));

}

public void paint(Graphics g) { dessinerSourire(g);

g.setColor(Color.darkGray);

g.drawLine(180, 0, 180, 400);

// déjà vue

afficher(g, "Vitamine S : un sourire!", 200, 50);

// un affichage spécial

afficher("Droit d'auteur à débarasser!", g, 200, 250);

} }

(10)

4) Quatrième exemple : interface Runnable /* Cet exemple est extrait d'un site Web de l'Université de Genève.

Le seul but pédagogique :

1) interface Runnable pour des objets "bougeables"

(chaîne clignotante ici, horloge avec aiguilles qui bougent, etc ....) 2) la classe Applet4 s'engage à implémenter la méthode

abstraite Run de Runnable

Les matières présentées ne font pas partie du tout du final ni prévues pour IFT 1170.

Vous allez les étudier au IFT 1176

*/

import java.awt.*;

public class Applet4

extends java.applet.Applet implements Runnable { Thread tache;

Font font;

boolean gris = false;

public void init() {

font = new java.awt.Font("TimesRoman", Font.PLAIN, 24);

(11)

}

public void paint(Graphics g) { g.setFont(font);

if (gris)

g.setColor(Color.lightGray);

else

g.setColor(Color.black);

g.drawString("Je suis une ligne clignotante", 50, 100);

}

public void start() { tache = new Thread(this);

tache.start();

}

public void stop() { tache.stop();

}

public void run() { while (true) { try {

Thread.sleep(1000); // pause de 1 seconde } catch (InterruptedException e) {}

gris = !gris;

repaint(); // on force le réaffichage }

} }

(12)

5) Exemple 5 : Jeux de dés

/* Lancer 3 dés 6 fois. Afficher les chiffres et leur somme

*/

import java.awt.*;

import java.applet.*;

public class LesDes extends Applet

{ //Phase initialisation d'une applet quand elle est chargée public void init() {

/* Le constructeur Font de la classe Font à 3 paramètres : Font (police, style, taille)

Quelques exemples sur style : Font.ITALIC : italique Font.BOLD : en gras Font.PLAIN : normal

Font.BOLD + Font.ITALIC : italique en gras etc ....

*/

setFont(new Font("TimesRoman", Font.PLAIN, 30));

}

static int aleatoire ( int borneInf, int borneSup) {

return (int) ( (borneSup - borneInf + 1) * Math.random() + borneInf );

}

static void ecrireEntete(Graphics g, int n, int c, int d) { String nom ;

Color coul = Color.black;

g.setColor(Color.blue);

g.drawString("Résultats de " + n + " lancements des dés", c,30);

for (int i = 1 ; i <= 4 ; i++) { if ( i < 4 )

{

switch (i) {

case 1 : coul = Color.red ; break ;

case 2 : coul = Color.yellow ; break ;

case 3 : coul = Color.blue ;

break ;

}

nom = "Dé # " + i ;

(13)

} else {

coul = Color.green;

nom = "Somme";

}

g.setColor(coul);

g.drawString(nom, c + (i-1) * d, 80);

} }

public void paint(Graphics g) {

final int NB_LANCEMENTS = 6, COLONNE1 = 15, DISTANCE = 100, DEBUT_Y = 120;

// imposer la couleur (ici bleue)

ecrireEntete(g, NB_LANCEMENTS, COLONNE1, DISTANCE );

g.setColor(Color.black);

int y = 120;

for (int nombre = 1 ; nombre <= NB_LANCEMENTS; nombre++) { int somme = 0;

for (int de = 1 ; de <= 3 ; de++) { int val = aleatoire(1, 6);

somme += val ;

g.drawString(val + " ", COLONNE1 + 20 +

(de-1) * DISTANCE,y);

}

g.drawString(somme + " ", COLONNE1 + 20 + 3 * DISTANCE,y);

y += 30;

}

} }

(14)

C) Applets professionnelles :

Par exemple, dans le livre : « Java et la programmation objet » de Michel Divay (éditeur DUNOD) dont la page Web se trouve sur :

http://www.iut-lannion.fr/MD/MDLIVRES/LivreJava/

on retrouve les applets suivantes :

On vous invite à voir au moins trois :

Oiseaux animés, Cercles et Rosaces, Feu d’artifice.

Pour la programmation orientée objet, on revoit l’utilité d’une interface : pour animer, on utilise souvent l’interface Runnable avec une seule méthode run() :

(15)

java.lang

Interface Runnable

Method Summary

void run()

public class MotifAnime extends Motif

implements Runnable {

etc …

// implementer la méthode run() de l’interface Runnable pour l’animation

public void run() {

. . . détails non importance . . .

} }

Le fichier HTML suivant lance l’applet:

<HTML>

<HEAD>

<TITLE>

Oiseaux animés </TITLE>

</HEAD>

<BODY>

<applet

code=PPOiseauAnime.class width=150 heigth =150>

</applet>

</BODY>

</HTML>

(16)

Références

Documents relatifs

un point d’entrée dans un système avec de nombreuses classes ce programme est exécutable après compilation.. Une classe,

Principe.- Chaque classe ´el´ementaire poss`ede un constructeur permettant de passer d’une entit´e d’un type ´el´ementaire ` a un objet de la classe ´el´ementaire

Vous devez tester deux méthodes permettant d'envoyer des informations à un programme Java : en utilisant les variables d'environnement de votre système d'exploitation ou en passant

Prévention du risque tsunami en France et sur l’arc méditerranéen : cadre et outils disponibles, actualités et actions à venir. • Émilie CROCHET - Direction générale de

Pour simplifier un script lors de la répétition d’un même bloc de commande, on peut utiliser ce que l’on appelle en programmation une boucle grâce au bloc de commande ci-contre.

Tout programme Java destiné à être exécuté au sein d’un navigateur dérive nécessairement de cette classe5. Par extension, on appel applet toute sous classe de

CSS erlaubt es, zentrale Formate zu definieren, beispielsweise für alle Überschriften erster Ordnung, oder für alle Textabsätze mit einem bestimmten Klassennamen, oder

Construit et retourne un jeu de 52 cartes en indiquant si la force de l'As doit être supérieure à toutes les autres cartes (soit une force de 14), sinon sa force est la plus