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

Interfaces Graphiques en Java Discussion :

Splashscreen / Temps d'attente ?


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 14
    Points : 11
    Points
    11
    Par défaut Splashscreen / Temps d'attente ?
    Bonjour à tous.
    Voilà, dans un projet Java je veux afficher deux fenêtre successivement. Le première faisant office de Splashscreen, la deuxième etant ensuite mon programme.

    J'arrive à afficher les deux successivement, seulement les actions se déroulent presque instantanément, du coup on a pas le temps de voir la première fenêtre. Comment je peux faire pour dire à ma première fenêtre de rester affichée pendant x secondes. Ou dire à java d'attendre x secondes avant d'ouvrir la seconde fenêtre.

    Mon code d'appel des fenêtres est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public static void main(String [] args){
            JFrame intro = new Intro();
            intro.setVisible(false);
     
            JFrame menu = new Menu();
     
        }
    Intro etant la classe correspondant à la première fenetre (donc le splahscreen), et Menu la fenêtre principale, c'est à dire la seconde.

    En gros je voudrais qu'il se passe par exemple 5 secondes entre ces deux lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    JFrame intro = new Intro();
    intro.setVisible(false);
    Voilà, merci d'avance de vos réponses.

    Bibi

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Un petit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Thread.sleep(int milliseconds)
    serait de bon aloi

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Merci, mais j'ai une erreur :
    unreported exception java.lang.InterruptedException; must be caught or declared to be thrown

    J'ai essayé ça, puisque en mettant Thread.sleep(5000) tout seul entre mes 2 actions, j'avais la même erreur :
    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
    public class Jeu {
    public jeu() {
        }
     
    public static void main(String [] args){
        JFrame intro = new Intro();
        intro.setVisible(false);
        JFrame menu = new Menu();
     
        } 
    }
     
    class Intro extends JFrame implements Runnable {
        Intro(){
            new Thread(this).start();
           }
     
        public void run(){
        setSize(600,300);
        setTitle("Jeu");
     
        setDefaultLookAndFeelDecorated(true);
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
     
        JPanel intro = new JPanel();
        getContentPane().add(intro);
     
        intro.add(new JLabel("<html><font size='15'>Bienvenue</font></html>"));
     
        pack();
        setLocationRelativeTo(null);
        setVisible(true);
        Thread.sleep(5000);
     
        }
    }
     
    }
    Si vous voyez où est l'erreur :$

  4. #4
    Membre éclairé Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Points : 724
    Points
    724
    Par défaut
    Il faut catcher l'exception suceptible d'être lancée par l'instruction que t'a donné Sinok. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    try{
       Thread.sleep(300);
    } catch (InterruptedException e){
       e.printStackTrace();
    }

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Ca fonctionne merci beaucoup =)

  6. #6
    Membre éclairé Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Points : 724
    Points
    724
    Par défaut
    Pense au !
    Merci !

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Re bonjour.

    En faite j'ai un nouveau soucis avec ça, c'est que sous Linux la gestion de mes threads fonctionne bien, j'ai mon splashcreen puis ma fenêtre principale, mais sous Windows (je travaille avec NetBeans), au moment de l'execution le splashcreen ne s'affiche pas, directement la fenêtre principale.

    Si je demande d'afficher seulement le splashcreen, alors le programme tourne en boucle, rien ne se passe.

    Le code de mon splashscreen donne ça a la fin :

    setVisible(true);

    try{
    Thread.sleep(2500);
    } catch (InterruptedException e){
    e.printStackTrace(); }
    setVisible(false);
    Celui de ma fenêtre suivante :

    try{
    Thread.sleep(3500);
    } catch (InterruptedException e){
    e.printStackTrace(); }
    setVisible(true);
    Je vois pas vraiment où est le problème

    Merci d'avance.

Discussions similaires

  1. temps d'attente upload
    Par momomafioso dans le forum ASP.NET
    Réponses: 3
    Dernier message: 02/08/2007, 08h59
  2. algorithme qui détecte et compte le nombre de visages et leur temps d'attention
    Par aptchagi dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 13/06/2007, 14h46
  3. [MSDNAA] Temps d'attente
    Par erfindel dans le forum Autres Logiciels
    Réponses: 6
    Dernier message: 02/02/2007, 11h34
  4. [Info-bulles]Comment modifier le temps d'attente?
    Par minus dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 22/03/2006, 13h39
  5. [VB]temps d'attente entre 2 instructions
    Par XtoX dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 27/09/2005, 09h38

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