Un bouton image qui change d'image au survol de la souris.

Soyez le premier à donner votre avis sur cette source.

Vue 19 353 fois - Téléchargée 1 111 fois

Description

le principe est simple : creer un bouton avec une image, qui permet de changer celle ci au survol de la souris...
Le pointeur de la souris change aussi d'apparence pour signaler qu'on peut *clicker* sur le bouton.

Source / Exemple :


// Author : SLaYerS (slayers@maxeechat.com)
// http://www.maxeechat.com
//
// Date : 11/04/03

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

public class ImgButton extends Panel implements ActionListener {

  public ImgButton(Image over, Image on, Color background) {
    _pushed = false;
    _inside = false;
    _imageOver = _image = over;
    _imageOn = on;
    _background = background;
    setBackground(background);
    enableEvents(AWTEvent.MOUSE_EVENT_MASK);
    setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
  }

  public void paint(Graphics g) {
    g.setColor(_background);
    g.fillRect(0, 0, getSize().width, getSize().height);
    if (_pushed && _inside)
      g.drawImage(_image, 2, 2, this);
    else
      g.drawImage(_image, 0, 0, this);
  }

  public void update(Graphics g) {
    paint(g);
  }

  public void processMouseEvent(MouseEvent e) {
    if(e.getID() == 504) {
      _inside = true;
      _image = _imageOn;
      repaint();
    }
    if(e.getID() == 505) {
      _inside = false;
      _image = _imageOver;
      repaint();
    }
    if(e.getID() == 501) {
      _pushed = true;
      repaint();
    }
    if(e.getID() == 502) {
      _pushed = false;
      if(_inside) {
        deliverEvent(new Event(this, 1001, null));
        repaint();
      }
    }
  }

  public void actionPerformed(ActionEvent e) {

  }

  private Image _imageOver;
  private Image _imageOn;
  private Image _image;
  private final Color _background;
  private boolean _pushed;
  private boolean _inside;
}

Conclusion :


Si vous utilisez ce code ds vos applets, merci de me tenir au courant :)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Commenter la réponse de cs_dragon

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.