table des matières
Images - Applications

Image, font, Couleur du fond
Téléchargez dans la repertoire locale du projet le fichier 1_MAGIC.JPG de
http://ff.tu-sofia.bg/JavaBg/Images/images/
application
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
public class Ex1 {
    public static void main (String[] arg){
        JFrame f = new JFrame("Ex 1");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        MyCanvas  cs = new MyCanvas();       
        f.add("Center",cs);
        f.setSize(250,350);
        cs.setBackground(Color.yellow);
        cs.setForeground(Color.BLUE);
        cs.setFont(new Font("TimesRoman",Font.ITALIC,24));
        cs.repaint();
        f.setVisible(true);
    }
 
}
class MyCanvas extends Canvas{
    int iw=100,ih=100;
    Image img=Toolkit.getDefaultToolkit().getImage("1_MAGIC.JPG");
    public void paint (Graphics g){      
        g.drawString("This an image", 20, 20) ;
        g.drawImage(img, iw, ih,120,120, this);
       
    }
}


Utilisation de souris


souris
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
public class Ex1 {
    static Image img=Toolkit.getDefaultToolkit().getImage("1_MAGIC.JPG");
    static MyCanvas  cs = new MyCanvas();
    public static void main (String[] arg){
        JFrame f = new JFrame("Ex 1");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        
        cs.addMouseListener(new MyMouse());
        f.add(cs);
        f.setSize(250,350);
        cs.setBackground(Color.yellow);
        cs.setForeground(Color.BLUE);
        cs.setFont(new Font("TimesRoman",Font.ITALIC,24));
        cs.repaint();
        f.setVisible(true);
    }
    static public class MyMouse extends MouseAdapter {
        public void mouseClicked(MouseEvent ev) {
            cs.x=ev.getX();
            cs.y=ev.getY();
            cs.repaint();
            System.out.println("x="+ev.getX() + " y="+ ev.getY());
        }
    }
    static class MyCanvas extends Canvas{
        int x=50,y=70;
        public void paint (Graphics g){     
            g.drawString("This an image", 20, 20) ;
            g.drawImage(img, x, y,120,120, this);

        }
    }
}

Example avec des cartes à jouer
Téléchargez dans la repertoire locale du projet les fichiers de
http://ff.tu-sofia.bg/JavaBg/Images/images/
Exemple avec des cartes à jouer
import java.applet.*;
import java.awt.event.*;
import java.awt.*;

import javax.swing.*;
public class CardEx extends Canvas{
    Image Card[] = new Image[5];
    int wh=70,ht=100;
    int vX[]=new int[Card.length];
    int vY[]=new int[Card.length];
    boolean back[] = new boolean[Card.length];
    boolean ctch[] = new boolean[Card.length];
    int helpX,helpY,clicks;

    public static void main(String[] arg){
        JFrame fr = new JFrame("Card example");
        fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        fr.setSize(400, 400);
        fr.setVisible(true);
        CardEx ce = new CardEx();
        fr.add(ce);
        ce.init();

    }

    public void init(){
        setBackground(Color.green);
        for(int i=0; i<Card.length;i++){
            Card[i]=Toolkit.getDefaultToolkit().getImage("C"+i+".jpg");
            vX[i]=20+55*i;
            vY[i]=30;
            back[i]=ctch[i]=false;
        }
        addMouseListener(new MouseHandler());
        addMouseMotionListener(new MouseMotionHandler());
    }
    class MouseHandler extends MouseAdapter {
        public void mousePressed(MouseEvent e){
            helpX=e.getX(); helpY=e.getY();
            for(int i=0;i<Card.length;i++){
                if(chckIn(i,helpX,helpY)){
                    ctch[i]=true;
                    if(e.getClickCount()==2){
                        if(back[i])
                            Card[i]=Toolkit.getDefaultToolkit().getImage("C"+i+".jpg");
                        else Card[i]=Toolkit.getDefaultToolkit().getImage("Cback.jpg");
                        back[i]=!back[i];
                        repaint(vX[i],vY[i],wh,ht);
                    }
                }
            }
            clicks=e.getClickCount();
            repaint();
        }
        public void mouseReleased(MouseEvent e){
            for(int i=0;i<Card.length;i++)
                ctch[i]=false;
            repaint();
        }
    }

    class MouseMotionHandler extends MouseMotionAdapter {
        public void mouseDragged(MouseEvent e){
            int x = e.getX();
            int y = e.getY();
            for(int i=0;i<Card.length;i++)
                if(ctch[i]) {
                    vX[i]+=(x-helpX); vY[i]+=(y-helpY);
                    repaint(vX[i],vY[i],wh,ht); helpX=x; helpY=y;
                }
        }
    }
    public void paint(Graphics g) {
        for(int i=0;i<Card.length;i++){
            g.drawImage(Card[i], vX[i], vY[i], wh,ht,this);
            g.drawRect(vX[i], vY[i], wh,ht);
        }
    }
    boolean chckIn(int ncard, int x, int y){
        if( (x>vX[ncard])&& (x< vX[ncard]+wh) &&
                (y> vY[ncard])&& (y< vY[ncard]+ht) ) return true;
        return false;
    }



Deuxième Exemple avec des cartes à jouer
import java.awt.*;
import java.awt.event.*;
import java.util.*;

import javax.swing.*;

class CardObj{
   Image card,cardBack;
   int vx,vy;
   static int cLen=70,cHeight=100;
   boolean back;

   CardObj(int num,int x, int y,PassEx passEx){
      card=Toolkit.getDefaultToolkit().getImage("C"+num+".jpg");
      cardBack=Toolkit.getDefaultToolkit().getImage("Cback.jpg");
      vx=x; vy=y;
      back=false;
   }
   void draw(Graphics g,PassEx passEx){
      if(!back)
         g.drawImage(card,vx,vy,cLen,cHeight,passEx);
      else
         g.drawImage(cardBack,vx,vy,cLen,cHeight,passEx);
      g.drawRect(vx, vy, cLen,cHeight);
      
   }
}
class PileCard extends Stack{
   int vx,vy;
   PileCard(int x, int y){
      vx=x; vy=y;
   }
   boolean dansPile(int x, int y){
      if( (x>vx)&&(x<vx+CardObj.cLen))
         if((y>vy) && (y<vy+CardObj.cHeight))
            return true;      
      return false;
   }
   void push(CardObj card){
      card.vx=vx;
      card.vy=vy;
      card.back=!card.back;
      super.push(card);

   }
      
}

class TablCard extends Vector{
   int vx,vy;
   static int dist=10;
   TablCard(int x, int y, int d){
      vx=x; vy=y; dist=d;
   }
   int indTabl(int x, int y){
      for(int i=0; i < size(); i++){
         if((x > vx+i*(CardObj.cLen+dist))&& (x < vx+i*(CardObj.cLen+dist)+CardObj.cLen))
            if((y > vy) && (y < vy+CardObj.cHeight))
               return i;
      }
      return -1;
   }
   void addElement(CardObj card){
      card.vx = vx+size()*(CardObj.cLen+dist);
      card.vy = vy;
      super.addElement(card);
   }
   void deleteAt(int i){
      for(int k =i+1; k<size(); k++)
         ((CardObj)get(k)).vx-=CardObj.cLen+dist;
      super.removeElementAt(i);
   }
   
   void draw(Graphics g,PassEx place){
      for(int i =0; i < size(); i++)
         ((CardObj)get(i)).draw(g,place);
   }
}

public class PassEx extends Canvas{
   PileCard pileDep,pileDest;
   TablCard bureau;
   
   public void init() {
      setBackground(Color.green);
      pileDep=new PileCard(20,20);
      pileDest= new PileCard(200,20);
      bureau = new TablCard(20,200,10);
      for(int i= 0;i<5;i++)
        pileDep.push(new CardObj(i,pileDep.vx,pileDep.vy,this));
      addMouseListener(new MouseHandler());
   }
   public void paint(Graphics g) {
      if(!pileDep.empty()){
         ((CardObj)pileDep.peek()).draw(g,this);
      }
      if(!pileDest.empty()){
         ((CardObj)pileDest.peek()).draw(g,this);
      }
      if(!bureau.isEmpty()) bureau.draw(g,this);

   }
   class MouseHandler extends MouseAdapter {
      public void mousePressed(MouseEvent e){
         int x=e.getX(), y=e.getY(), k;
         if(pileDep.dansPile(x,y) && !pileDep.empty()){
            pileDest.push((CardObj)pileDep.pop());
         }
         else if(pileDest.dansPile(x,y) && !pileDest.empty())
             bureau.addElement((CardObj)pileDest.pop());
         else if((k=bureau.indTabl(x,y))>=0){
            pileDep.push((CardObj)(bureau.elementAt(k)));
            bureau.deleteAt(k);
 
         }
         repaint();
      }
   }
   public static void main(String[] arg){
       JFrame fr = new JFrame("Solitaire");
       fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       fr.setSize(400, 400);
       PassEx cv = new PassEx();
       fr.add(cv);
       cv.init();
       fr.setVisible(true);
   }
}


table des matières