Menu

Objet [Résolu]

titisoli 17 Messages postés jeudi 26 janvier 2017Date d'inscription 17 février 2018 Dernière intervention - 29 juil. 2017 à 21:33 - Dernière réponse : KX 15641 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 22 juillet 2018 Dernière intervention
- 12 août 2017 à 16:46
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 

Votre réponse

3 réponses

Meilleure réponse
KX 15641 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 22 juillet 2018 Dernière intervention - 30 juil. 2017 à 02:15
1
Merci
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)

Merci KX 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

CCM a aidé 22612 internautes ce mois-ci

titisoli 17 Messages postés jeudi 26 janvier 2017Date d'inscription 17 février 2018 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 :)
KX 15641 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 22 juillet 2018 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);
    }
}
Commenter la réponse de KX