Exemple 1
WB01624_.gif (281 octets) RETOUR

          Exemple :

public class Coordonnee {
  private int cx ;
  private int cy ;

  public int x() {
    return(cx) ;
    }

  public int y() {
    return(cy) ;
    }

  public void set(int xx,int yy) {
    cx = xx ;
    cy = yy ;
    }
  }
import java.applet.Applet ;

public class Afficheur extends Thread {
  private Coordonnee c ;
  private Applet a ;
  private boolean ok = true ;

  public Afficheur(Coordonnee co,Applet ap) {
    c = co ;
    a = ap ;
    }

  public void run() {
    while ( ok ) {
      a.repaint() ;
      try {
        Thread.sleep(1000) ; }
      catch ( Exception e ) { } ;
      }
    }
  }
public class Modifieur extends Thread {
  private Coordonnee c ;
  private boolean ok = true ;

  public Modifieur(Coordonnee co) {
    c = co ;
    }

  public void run() {
    while ( ok ) {
      c.set(c.x()+1,c.y()+1) ; }
    }
  }
import java.applet.Applet ;
import java.awt.Graphics ;

public class Synchro1 extends Applet {
  private Coordonnee c ;
  private Afficheur a ;
  private Modifieur b ;
  private int cpt = 0 ;

  public void init() {
    c = new Coordonnee() ;
    Afficheur a = new Afficheur(c,
                           (Applet) this) ;
    a.start() ;
    Modifieur b = new Modifieur(c) ;
    b.start() ;
    }

  public void paint(Graphics g) {
    int x = c.x() ;
    String sx = new Integer(x).toString() ;
    g.drawString(sx,10,15) ;
    int y = c.y() ;
    String sy = new Integer(y).toString() ;
    g.drawString(sy,100,15) ;
    if ( x != y )
      cpt++ ;
    String sc = new Integer(cpt).toString() ;
    g.drawString(sc,200,15) ;
    }
  }