Signaler

Objet [Résolu]

Posez votre question titisoli 7Messages postés jeudi 26 janvier 2017Date d'inscription 12 août 2017 Dernière intervention - Dernière réponse le 12 août 2017 à 16:46 par KX
Salut !

Je voudrais savoir comment crée une simple image que l'on peut bouger.

L'objet Image ne me parait pas le meilleure, pouvez-vous me conseillez un objet (image si c'est nécessaire) et me dire comment le bouger ?

Merci !

PS: Pour l'instant, j'utilise un STexturedButton, je ne sais pas si c'est de JAVA ou de l'API que j'utilise (Swinger). Il ne me paraît pas adapter (il permet de faire un boutton).
Afficher la suite 
Utile
+1
plus moins
Bonjour,

Par "bouger" l'image tu veux dire quoi ? Déplacer une image fixe sur ta fenêtre ou afficher une image dynamique (genre un Gif).

Sachant que dans les deux cas, n'importe quel composant Swing peut le faire via la méthode paint(Graphics)
titisoli 7Messages postés jeudi 26 janvier 2017Date d'inscription 12 août 2017 Dernière intervention - 12 août 2017 à 15:11
Excuse moi de ma réponse tardive. J'ai compris ce que tu voulais dire et je parlait d'une image fixe a déplacer :)
Répondre
KX 14685Messages postés samedi 31 mai 2008Date d'inscription ModérateurStatut 16 août 2017 Dernière intervention - 12 août 2017 à 16:46
Voici un exemple en Java pur (sans API supplémentaire).
C'est assez générique car on pourrait s'en servir pour déplacer n'importe quoi.

import java.awt.Component;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class DraggableMouseAdapter extends MouseAdapter {

    private final Component component;
    private int dx, dy;

    public DraggableMouseAdapter(Component component) {
        this.component = component;
    }

    @Override
    public void mousePressed(MouseEvent e) {
        dx = component.getX() - e.getXOnScreen();
        dy = component.getY() - e.getYOnScreen();
    }

    @Override
    public void mouseDragged(MouseEvent e) {
        component.setLocation(dx + e.getXOnScreen(), dy + e.getYOnScreen());
    }

    public static void init(Component component) {
        DraggableMouseAdapter adapter = new DraggableMouseAdapter(component);
        component.addMouseListener(adapter);
        component.addMouseMotionListener(adapter);
    }
}

import java.awt.Component;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;

public class ImageComponent extends Component {
    private static final long serialVersionUID = 1;

    private final Image img;

    public ImageComponent(Image img) {
        this.img = img;
        setSize(getSize());
    }

    @Override
    public void paint(Graphics g) {
        g.drawImage(img, 0, 0, null);
    }

    @Override
    public Dimension getSize() {
        return new Dimension(img.getWidth(null), img.getHeight(null));
    }
}

import java.awt.Image;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JFrame;

public class Test {

    public static void main(String[] args) throws IOException {
        Image img = ImageIO.read(new File("C:/image.png"));
        ImageComponent imgComp = new ImageComponent(img);
        DraggableMouseAdapter.init(imgComp);

        JFrame frame = new JFrame();
        frame.setLayout(null);
        frame.setSize(800, 600);
        frame.add(imgComp);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}
Répondre
Donnez votre avis

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.

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

Vous n'êtes pas encore membre ?

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