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

Agents de placement/Fenêtres Java Discussion :

afficher une image pendant un laps de temps


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 45
    Points : 9
    Points
    9
    Par défaut afficher une image pendant un laps de temps
    Bonjour,
    J'ai fait une petit jeu de Memory et j'essaie de l'améliorer en affichant une image succes pendant une seconde quand le joueur trouve une paire et une image unsucces quand il tombe sur une mauvaise paire. J'utilise pour àa un JDialog Undecorated, mais il ne s'affiche pas.
    voici mon 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
    public void affiche(CarteImage c){
    		JDialog dialog = new JDialog();
    		dialog.setUndecorated(true);
    		JLabel label = new JLabel( );
    		label.add(c);
    		dialog.add( label );
    		dialog.pack();
    		dialog.setVisible(true);
    		Timer timer = new Timer(1000, new ActionListener() {
    			public void actionPerformed(ActionEvent evt) {
    				dialog.setVisible(false);
    			}
    		});
    		timer.setRepeats(false);
    		timer.start();
    	}
    merci d'avance

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    En fait, si, il s'affiche, mais il est de taille 0, donc tu ne le vois pas. Il est de taille 0 parce qu'un JLabel sans texte ni image fait 0. Un JLabel n'est pas censé contenir de composant. Pourquoi utiliser un JLabel intermédiaire ? Ajoute directement ton composant CarteImage dans le JDialog, à la place du JLabel. Il faudra penser également à centrer le JDialog. Et surtout à le fermer (pas le rendre invisible), par dialog.dispose().

    Je pense par ailleurs qu'il vaudrait mieux une solution à base de JLayer : ainsi, tu serais sûr que ton image s'affiche bien au dessus de ton jeu, et ça t'éviterait probablement les problèmes inhérents aux fenêtres (focus, inventaire dans le système, etc...). Tu peux même faire des effets visuels sympas.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 45
    Points : 9
    Points
    9
    Par défaut
    merci, je l'ai ajouté directement et rien d'afficher
    sinon je ne connais pas du tout le JLayer, as tu un exemple de fait?

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par momo-mtl Voir le message
    merci, je l'ai ajouté directement et rien d'afficher
    Tu peux me remettre le code actuel ?

    Citation Envoyé par momo-mtl Voir le message
    sinon je ne connais pas du tout le JLayer, as tu un exemple de fait?
    Non. Mais tu as des exemples sur le site d'Oracle : http://docs.oracle.com/javase/tutori...sc/jlayer.html.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 45
    Points : 9
    Points
    9
    Par défaut
    voici le code actuel:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public void affiche(CarteImage c){
    		JDialog dialog = new JDialog();
    		dialog.setUndecorated(true);
    		dialog.add(c);
    		dialog.pack();
    		dialog.setVisible(true);
    		Timer timer = new Timer(1000, new ActionListener() {
    			public void actionPerformed(ActionEvent evt) {
    				dialog.dispose();
    			}
    		});
    		timer.setRepeats(false);
    		timer.start();
    	}

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Après dialog.setVisible(true);, ajoute System.out.println(c.getSize());. Qu'est-ce que ça affiche ?

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 45
    Points : 9
    Points
    9
    Par défaut
    voila ce que ça affiche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.awt.Dimension[width=1,height=1]

  8. #8
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Donc, c'est normal que tu ne vois rien : le dialogue fait 1x1 pixel !!! C'est dû à CarteImage, qui n'a pas de preferredSize. Dans le jeu, ça ne doit pas poser de problème parce que tu utilises un GridLayout. Essaye de faire : setPreferredSize(new Dimension(100,100));, par exemple, dans le constructeur de CarteImage.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 45
    Points : 9
    Points
    9
    Par défaut
    super, merci beaucoup, j'ai réussi aussi à centrer mon dialog

Discussions similaires

  1. Afficher une image dans un laps de temps très précis
    Par shaolan12 dans le forum Android
    Réponses: 0
    Dernier message: 06/11/2013, 17h02
  2. [MySQL] Afficher quelque chose pendant un laps de temp
    Par black-hat dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/05/2012, 22h38
  3. afficher une image pendant un certain temps sur une page
    Par fraizas77 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/06/2009, 17h53
  4. Bloquer les éléments d'une liste pendant un laps de temps
    Par Foub dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 17/03/2008, 22h15
  5. afficher une image pendant X seconde ?
    Par weldoo dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/11/2007, 17h56

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