Clic sur une image

Signaler
Messages postés
208
Date d'inscription
mardi 29 novembre 2005
Statut
Membre
Dernière intervention
13 mars 2009
-
Messages postés
208
Date d'inscription
mardi 29 novembre 2005
Statut
Membre
Dernière intervention
13 mars 2009
-
Bonjour je suis debutant ici je programme normalement en api c windows et connait aussi le c++.net ( le java a l'air d'y resembler).
Voila mon probleme j'ai creer une applet 640 480 et j'ai une image en position 300, 200 sur 32x32 .Comment gerer le clic sur l'image aller à un void ?(exemple je voudrais que mon image change)
Merci de me donner un exemple simple et court. je joint mon code.

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


public class mabaseimage extends Applet {


Image mon_image; //Définition d'image de fond
Image ba_image; //Définition image bouton a


public void init()
{
mon_image = getImage(getCodeBase(),"paysage.gif");
ba_image = getImage(getCodeBase(),"ba.gif");
 
}


    public void paint(Graphics g) {
   
    g.drawImage(mon_image,0,0,640,480,this);
   
    g.drawImage(ba_image,300,200,32,32,this);
   
       
    }


 

4 réponses

Messages postés
5366
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
6 décembre 2021
111
Salut,

voici un exemple d'utilisation des listener souris :

import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

public class MaBaseImage extends Applet implements MouseListener{

    private static final long serialVersionUID = 1L;
    private Image mon_image = null; // Definition d'image de fond
    private Image ba_image = null; // Definition image bouton a
    //ne sachant pas ce que tu veut faire
    //je met cette variable pour l'exemple
    //si tu presse la souris on affiche l'image sinon
    //on affiche pas :P
    private boolean pressed = false;
   
    public void init() {
       
        mon_image = getImage(getCodeBase(), "paysage.png");
        ba_image = getImage(getCodeBase(), "ba.png");
        //on utilise un MediaTracker pour s'assurer que l'image est bien load
        MediaTracker mt = new MediaTracker(this);
        mt.addImage(mon_image, 0);
        mt.addImage(ba_image, 0);
        try {
            mt.waitForAll();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        //on rattache le listener de souris
        addMouseListener(this);
    }

    public void paint(Graphics g) {
        if(mon_image != null)
            g.drawImage(mon_image, 0, 0, 640, 480, this);
        if(ba_image != null && pressed)
            g.drawImage(ba_image, 300, 200, 32, 32, this);

    }
   
    public void mousePressed(MouseEvent e) {
        pressed = true;
        repaint();
    }
    public void mouseReleased(MouseEvent e) {
        pressed = false;
        repaint();
    }
    public void mouseClicked(MouseEvent e) {}
    public void mouseEntered(MouseEvent e) { }
    public void mouseExited(MouseEvent e) { }
   
}

pour plus d'info regarde sur ce site il y a plein d'exemples

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Messages postés
208
Date d'inscription
mardi 29 novembre 2005
Statut
Membre
Dernière intervention
13 mars 2009
1
Ok merci j'ai trouver une autre solution plus courte car j'ai 27 bouton à gerer
Messages postés
764
Date d'inscription
mardi 25 mai 2004
Statut
Membre
Dernière intervention
8 mars 2011
8
tu peux donner ton autre solution ??
(pour culture générale )
Messages postés
208
Date d'inscription
mardi 29 novembre 2005
Statut
Membre
Dernière intervention
13 mars 2009
1
Voila pour la culture general


public boolean mouseDown(Event evt,int px, int py ){


// bouton a
if(px>5&&px<37&&py>310&&py<342 && a==0)
{
a=1;
repaint(); 
}


return true;
}

 public void paint(Graphics g) {
if (a==1){
        g.drawImage(ca_image,5,310,32,32,this);}else{
        g.drawImage(ba_image,5,310,32,32,this);}
}


Mais il y a un probleme il y a un blanc avant de repeindre la page, il faut dire que j'ai 40 images differente sur ma page.