Composition d'images
sous java 2D

WB01624_.gif (281 octets) RETOUR

</COMMENT> alt="Your browser understands the &lt;APPLET&gt; tag but isn't running the applet, for some reason." Your browser is completely ignoring the &lt;APPLET&gt; tag!

Composition.class

Fichier source

Composition.java

/* Auteur: Nicolas JANEY         */
/* nicolas.janey@univ-fcomte.fr  */
/* Novembre 2001                 */

import java.awt.*;
import java.awt.geom.*;
import java.awt.event.*;
import java.applet.*;
import java.net.*;

public class Composition extends Applet implements MouseListener,MouseMotionListener {

  private int initX = 0 ;
  private int initY = 0 ;
  private int px = 100 ;
  private int py = 20 ;
  private int dx = 0 ;
  private int dy = 0 ;
  private boolean fond = true ;
  private Image f1 = null ;
  private Image f2 = null ;

  public void init() {
    setBackground(Color.white); 
    addMouseMotionListener(this);
    addMouseListener(this);
    URL url = this.getDocumentBase();
    try {
      String adresse = "http://"+url.getHost()+"/IG/Java2D/Images/Bois.jpg" ;
      URL u1 = new URL(adresse);
      f1 = getImage(u1) ; }
    catch (MalformedURLException e) { }
    try {
      String adresse = "http://"+url.getHost()+"/IG/Java2D/Images/Parquet.gif" ;
      URL u1 = new URL(adresse);
      f2 = getImage(u1) ; }
    catch (MalformedURLException e) { }
  }

  public void paint(Graphics g) {
    Graphics2D g2 =(Graphics2D) g;
    Color cmotif ;
    if ( fond )
      cmotif = new Color(0.75F,0.0F,1.0F,0.5F);
      else 
      cmotif = new Color(1.0F,0.75F,0.0F,0.5F);
    g2.drawImage(( fond ) ? f1 : f2,0,0,this);
    AlphaComposite ac = AlphaComposite.getInstance(AlphaComposite.SRC_OVER);
    Composite oldac =(Composite) g2.getComposite();
    g2.setComposite(ac);
    g2.setColor(cmotif);
    g2.fill(new Ellipse2D.Double(px+dx,py+dy,190,130));
    g2.setComposite(oldac);
  }

  public String getAppletInfo() {
    return "Composition de pixels sous Java 2D.";
  }

  public void mouseDragged(MouseEvent e) {
    int x =e.getX();
    int y =e.getY();
    dx = x - initX;
    dy = y - initY;
    repaint();
  }

  public void mouseMoved(MouseEvent e) {
  }

  public void mouseClicked(MouseEvent e) {
  }

  public void mouseEntered(MouseEvent e) {
  }

  public void mouseExited(MouseEvent e) {
  }

  public void mousePressed(MouseEvent e) {
    initX = e.getX() ;
    initY = e.getY() ;
    dx = 0;
    dy = 0;
  }

  public void mouseReleased(MouseEvent e) {
    if ( (e.getModifiers()&MouseEvent.BUTTON1_MASK) != 0 ) {
      px = px+dx;
      py = py+dy;
      dx = 0;
      dy = 0; }
      else {
      fond = !fond ; }
    repaint();
  }

  public void update(Graphics g) {
    setBackground(Color.white); 
    paint(g) ;
  }
}

RETOUR