IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Animation : déplacer un dessin


Sujet :

avec Java

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    315
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 315
    Points : 243
    Points
    243
    Par défaut Animation : déplacer un dessin
    Bonjour,
    En quête d'info sur des tests, je bloque sur le code suivant.
    Je voudrais que le dessin se déplace dans ma fenêtre.

    J'initialise dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class Initialise_1 {
    	public static void main(String[] args) {
     
    		Interface_1 inter = new Interface_1("Interface");
     
    		Thread thread = new calcul_1(inter);
    		thread.run();
    	}
    }
    cette classe calcul et temporise le déplacement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    public class calcul_1 extends Thread {
     
    	private Interface_1 inter1;
     
    	calcul_1(Interface_1 inter) {
    		this.inter1 = inter;
    	}
     
    	public void run() {
     
    		int x = 0;
     
    		while (true) {
    			try {
     
    				x = x + 1;
    				System.out.println("x= " + x);
    				inter1.setResultat1(x);
    				Thread.sleep(1000); // tempo 1 secondes
     
    			} catch (InterruptedException exception) {
    			}
    		}
    	}
    }
    l'interface affiche la valeur du calcul. C'est à cet endroit que j'ai placé l'animation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.FlowLayout;
    import java.awt.Graphics;
    import java.awt.Image;
    import java.awt.image.BufferedImage;
     
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    import javax.swing.SwingUtilities;
     
    public class Interface_1 extends JFrame {
     
    	private static final long serialVersionUID = 1L;
    	private JTextField text;
    	private Image bufferedImage;
     
    	Interface_1(String name) {
     
    		super(name);
    		setSize(new Dimension(400, 200));
     
    		JPanel panel = new JPanel();
    		FlowLayout flayout = new FlowLayout(FlowLayout.LEFT);
    		panel.setLayout(flayout);
     
    		JLabel label = new JLabel("x =");
    		this.text = new JTextField();
    		this.text.setPreferredSize(new Dimension(30, 20));
    		this.text.setBackground(getForeground());
     
    		panel.add(label);
    		panel.add(this.text);
    		setContentPane(panel);
    		setVisible(true);
     
    		// opération par défaut à la fermeture
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	}
     
    	@SuppressWarnings("null")
    	public void paint(Graphics g, final int resultat) {
    		this.bufferedImage = new BufferedImage(10, 10,
    				BufferedImage.TYPE_4BYTE_ABGR);
    		((BufferedImage) this.bufferedImage).createGraphics();
     
    		Graphics graph = null;
    		graph.setColor(Color.black);
    		graph.fillRect(0, 0, 10, 10);
     
    		g.drawImage(this.bufferedImage, resultat, 30, 10, 10, this);
    	}
     
    	public void setResultat1(final int resultat) {
    		SwingUtilities.invokeLater(new Runnable() {
    			public void run() {
    				text.setText("" + resultat);
    			}
    		});
    	}
    }

  2. #2
    Membre actif Avatar de Roy Miro
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 273
    Points : 290
    Points
    290
    Par défaut
    Bonjour,

    Je crois me souvenir qu'après la mise à jour des points du dessin et il faut appeler la méthode repaint sur le panel, sur lequel on dessine, pour redessiner concrètement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Déplacer un dessin avec KeyListener
    Par EroQx dans le forum Débuter
    Réponses: 1
    Dernier message: 24/02/2014, 13h40
  2. déplacer un dessin fait avec 'graphics'
    Par natha31 dans le forum ActionScript 3
    Réponses: 4
    Dernier message: 15/10/2010, 02h23
  3. Réponses: 3
    Dernier message: 11/06/2009, 09h44
  4. animation d'un dessin en VB6
    Par gaetan0120 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 20/02/2007, 14h34
  5. Déplacer, zoomer, dessiner (sur) une image
    Par charlito dans le forum 2D
    Réponses: 4
    Dernier message: 22/02/2006, 01h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo