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 :

faire un enchainement d'image


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    rien
    Inscrit en
    Juin 2019
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Juin 2019
    Messages : 36
    Par défaut faire un enchainement d'image
    Bonjour,

    je souhaite faire un enchainement d'image mais je n'y parviens pas pas :/
    voici le code

    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
    import java.util.Random;
     
    import javax.swing.ImageIcon;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
     
    public class Quizz {
     
    	public JFrame framme = new JFrame("quizz");
    	public int n = 0;
     
    		public Quizz(){
     
    		framme.pack();
    		framme.setSize(1280,720);
    		framme.setVisible(true);
    		framme.setResizable(false);
    		framme.setLayout(null);
    		framme.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		int chargement = random();
    		System.out.println(chargement);
     
    		JLabel label = new JLabel();
     
    		ImageIcon image1 = new ImageIcon(getClass().getResource("mite 1.png"));
    		ImageIcon image2 = new ImageIcon(getClass().getResource("mite 2.png"));
    		ImageIcon image3 = new ImageIcon(getClass().getResource("mite 3.png"));
     
    		label.setBounds(0, -10, 1280, 720);		
     
    		framme.add(label);
    		//ici j’essaye de faire l'enchainement 
    		try {
    			label.setIcon(image1);
    			Thread.sleep(500);
    			label.setIcon(image2);
    			Thread.sleep(500);
    			label.setIcon(image3);
     
    		} catch (InterruptedException e) {
    		System.out.println("beug enchainement image");
    		}
     
     
    	}
    	  private int random() {
    	  while (n < 5) {
    		  n = (int)(Math.random() * 11);  
    		  }
    	  return n;
        }
     
    }

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    La c'est sure ça n'ira pas, tu bloque le thread EDT avec les sleep.

    Tournes toi vers https://docs.oracle.com/javase/tutor...isc/timer.html
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Homme Profil pro
    rien
    Inscrit en
    Juin 2019
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Juin 2019
    Messages : 36
    Par défaut
    Je crois pas que c'est ce qu'il me faut (ou je comprend pas bien comment sa marche)
    Je veut qu'il y est l'image 1 qui apparait
    sa attend 0.5s
    puis l'image 2 apparait
    sa attend 0.5s
    et enfin l'image 3 apparait et le programme continue

    merci de ta réponse ^^

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    ça pourrait marche quand même. Mais effectivement peut etre qu'avec ce petit tutorial tu auras une autre idée : https://rom.developpez.com/java-swingworker/
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre averti
    Homme Profil pro
    rien
    Inscrit en
    Juin 2019
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Juin 2019
    Messages : 36
    Par défaut
    Mais il y a pas une commande simple qui permet juste d'attendre !? Je veut juste faire un enchainement de trois images !

  6. #6
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Plus simple ? Je ne sais pas, peut être comme ceci, mais je n'aime pas trop cette manière de faire.

    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
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    import java.net.MalformedURLException;
    import java.net.URL;
     
    import javax.swing.ImageIcon;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.SwingUtilities;
     
    public class Quizz {
     
    	public static void main(String args[]) {
    		new Quizz();
    	}
     
    	public JFrame framme = new JFrame("quizz");
    	public int n = 0;
     
    	JLabel label = new JLabel();
     
    	ImageIcon image1;
    	ImageIcon image2;
    	ImageIcon image3;
     
    	public Quizz() {
     
    		framme.pack();
    		framme.setSize(1280, 720);
    		framme.setVisible(true);
    		framme.setResizable(false);
    		framme.setLayout(null);
    		framme.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		int chargement = random();
    		System.out.println(chargement);
     
    		image1 = new ImageIcon(getClass().getResource("mite 1.png"));
    		image2 = new ImageIcon(getClass().getResource("mite 2.png"));
    		image3 = new ImageIcon(getClass().getResource("mite 3.png"));
     
    		label.setBounds(0, 0, 1280, 720);
     
    		framme.add(label);
     
    		launchAnim();
     
    	}
     
    	private void launchAnim() {
    		Thread t = new Thread() {
    			public void run() {
     
    				// ici j’essaye de faire l'enchainement
    				try {
    					SwingUtilities.invokeLater(new Runnable() {
    				          public void run() {
    			        	  	label.setIcon(image1);
    				          }
    					});
    					Thread.sleep(500);
    					SwingUtilities.invokeLater(new Runnable() {
    				          public void run() {
    			        	  	label.setIcon(image2);
    				          }
    					});
    					Thread.sleep(500);
    					SwingUtilities.invokeLater(new Runnable() {
    				          public void run() {
    				        	  label.setIcon(image3);
    				          }
    					});
     
    					Thread.sleep(500);
    					SwingUtilities.invokeLater(new Runnable() {
    				          public void run() {
    				        	  label.setIcon(null);
    				        	  label.setText("Voila c'est fini!");
    				          }
    					});
     
    				} catch (InterruptedException e) {
    					System.out.println("beug enchainement image");
    				}
     
    			}
    		};
    		t.start();
     
     
    	}
     
    	private int random() {
                     // TODO : Pas besoin de faire une boucle ici il y'a mieux a faire :)
    		while (n < 5) {
    			n = (int) (Math.random() * 11);
    		}
    		return n;
    	}
     
    }
    Et je pense que les SwingUtilities.invokeLater() ne soit pas, dans ce cas ci obligatoire.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Faire une rotation d'image
    Par sozie9372 dans le forum 2D
    Réponses: 6
    Dernier message: 30/11/2005, 22h40
  2. Comment faire une liste d'image de choix ?
    Par poussinphp dans le forum Composants VCL
    Réponses: 4
    Dernier message: 01/10/2005, 00h34
  3. Comment faire pour afficher une image ds une dbgrid
    Par totomaze dans le forum Bases de données
    Réponses: 2
    Dernier message: 16/10/2004, 15h31
  4. Réponses: 5
    Dernier message: 27/02/2004, 11h20

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