Systèmes de communication

Le langage Java


INTRODUCTION | MODULE 1| MODULE 2 | MODULE 3.1 | MODULE 3.2 | INDEX

Environnements de développement


Application Hello

Sans importation de "package" Avec importation
class Hello {
  public void main (String args[]) {
    System.out.println("Hello World!") ;
  }
}
import System.* ;
class Hello {
  public void main (String args[]) {
    out.println("Hello World!") ;
  }
}

Applet Hello

Sans importation du "package" java.applet Avec importation du "package" java.applet
import java.awt.Graphics;

public class Hello extends java.applet.Applet {
    public void paint(Graphics g) {
        g.drawString("Hello!",5,25);
    }
}

import java.awt.Graphics;
import java.applet.* ;

public class Hello extends Applet {
    public void paint(Graphics g) {
        g.drawString("Hello!",5,25);
    }
}

Le programme source est enregistré dans le fichier Hello.java (le nom de la classe et le nom du fichier doivent être identiques). La compilation (javac Hello.java) produit le fichier Hello.class.


Installation de l'applet dans une page HTML

<APPLET CODE="Hello.class" [CODEBASE="chemin"] WIDTH=150 HEIGHT = 25>
Ce texte sera affiché si l'applet ne fonctionne pas
</APPLET>

Applet avec paramètres

Applet page HTML
import java.awt.Graphics;

public class Hello extends java.applet.Applet {
   String nom ; //variable d'instance
    public void paint(Graphics g) {
       this.nom = getParameter("nom") ;
       String salut = new String("Hello " + nom);      
       g.drawString(salut, 5,25);
    }
}

<APPLET CODE="Hello.class" WIDTH=150
Height=25>
<PARAM  NAME="nom" VALUE="World"> 
Ce texte sera affiché si l'applet ne fonctionne pas
</APPLET>

Remarques


Définition de classes

class personne {
  String nom ;
  String prenom;
  int age ;

  // constructeur
  personne(String nom, String prenom, int age) {
    this.nom = nom ;
    this.prenom = prenom;
    this.age=age;
  }
  // une méthode permettant de modifier l'âge
  public void modif_age(int a) {
    age = a
  }
}

Utilisation:


Création d'interface avec l'AWT (Abstract Windowing Toolkit)

Zone texte:

Bouton:

Utilisation des "Keys" (méthode keyDown(Event evt, int key) )

TicTacToe pour voir d'autres possibilités (méthode mouseUp(Event evt, int x, int y) )


Créer des liens

La fabrication d'un bookmark création d'une nouvelle classe, traitement des exceptions, utilisation des méthodes 'init', 'action'.


Traitement des exceptions

Schéma d'utilisation:

try { methodeAvecException() ; }
// mehtodeAvecException contient une clause throw qui "jette" un objet d'une classe 'Throwable'
catch (NullPointerException n) { on exécute ceci en cas de réussite ! } 
catch (RuntimeException r) { on exécute ceci en cas de réussite ! } 
catch (IOException i) { on exécute ceci en cas de réussite ! } 
catch (MyException m) { on exécute ceci en cas de réussite ! } 
catch (Exception e) { on exécute ceci en cas de réussite ! } 
catch (Throwable t) { on exécute ceci en cas de réussite ! } 


Tâches légères (Thread)

Un exemple d'implémentation de l'interface 'Runnable' avec chargement de fichiers et traitement des exceptions.


Exercices:

Faire un applet "location". Une zone de texte permet de taper un URL et un bouton "envoi" permet de charger le document référencé !

Envoyer une requête GET n'est pas plus difficile, il faut ajouter les données de la forme (encodées) à l'URL.

Envoi d'une requête POST

Ouvrir un socket du serveur et envoyer

POST  /cgi-bin/mailto.cgi HTTP 1.0
Content-type: application/x-www-form-urlencoded
Content-lenght: 25
(ici+les+donnes+encodees)


Références