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 :

Mettre une fenêtre au premier plan après un splashscreen


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2008
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 382
    Par défaut Mettre une fenêtre au premier plan après un splashscreen
    Bonjour à tous,

    Je lance un un splashscreen a l'aide du composant JWindow():
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    fen_splash= new JWindow();	
    fen_splash.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
    fen_splash.setSize(450, 300);//On lui donne une taille pour qu'on puisse la voir
    fen_splash.setAlwaysOnTop(true);//Toujours au premier plan
    fen_splash.setLocationRelativeTo(null);
    try {
    	splash = new SplashScreen(ImageIO.read(new File("images/splashscreen.gif")), fen_splash.getBounds());
    } catch (IOException e) {
    	// TODO Auto-generated catch block
    	e.printStackTrace();
    }
    Le problème est que la taille de la fenetre est petite.
    Si l'utilisateur fait clique gauche en dehors de cette fenetre, l'iimage reste au premier plan grâce à setAlwaysOnTop(true) mais dès qu'on arrive a la fin du splashscreen, la nouvelle fenêtre se lance en arrière plan.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    fen_splash.setVisible(false);
    Fenetre fen = new Fenetre();
    fen.setVisible(true);
    fen_splash.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
    -J'ai essayé fen.toFront();
    Mais cette méthode ne fonctionne pas sur l'OS: Windows
    -J'ai essayé de changer le cursor pour pas avoir a cliquer ailleurs.
    Mais le cursor change si je me met en dehors du splashscreen et je peux a nouveau cliquer!
    -J'ai essayé de faire un :
    setAlwaysOnTop(true); suivi de setAlwaysOnTop(false);
    Mais ça ne me met pas la fenetre au premier plan.
    Et si je laisse setAlwaysOnTop(true);
    La fenêtre reste toujours au premier plan!
    Comment faire?

  2. #2
    Membre chevronné
    Avatar de Laine
    Femme Profil pro
    Doctorat informatique
    Inscrit en
    Mars 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Algérie

    Informations professionnelles :
    Activité : Doctorat informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 238
    Par défaut
    Bonjour

    as tu essayer

  3. #3
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2008
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 382
    Par défaut
    Ok j'ai remplacé fen_splash.setVisible(false);
    par:
    fen_splash.dispose();

    Aucun changement.
    Je n'ai pas la fenêtre au premier plan!

  4. #4
    Membre chevronné
    Avatar de Laine
    Femme Profil pro
    Doctorat informatique
    Inscrit en
    Mars 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Algérie

    Informations professionnelles :
    Activité : Doctorat informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 238
    Par défaut
    Bonsoir

    Pour "splash", tu l'instancie dans elle apparaît et techniquement c'est elle qui masque ta fenetre "fen"
    donc avec normalement ceci la ferait disparaitre et donc ramener "fen" au premier plan

  5. #5
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2008
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 382
    Par défaut
    Bonjour Laine,

    Splash hérite de JPanel.

    Code entier du Main()
    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
    public Main(){
    		fen_splash= new JWindow();
    		fen_splash.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
            fen_splash.setSize(450, 300);//On lui donne une taille pour qu'on puisse la voir
            fen_splash.setAlwaysOnTop(true);//Toujours au premier plan
            fen_splash.setLocationRelativeTo(null);
    		try {
    			splash = new SplashScreen(ImageIO.read(new File("images/splashscreen.gif")), fen_splash.getBounds());
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
            progressBar = new JProgressBar();
     
            fen_splash.setLayout(new BorderLayout());
            fen_splash.add(splash, BorderLayout.CENTER);
            fen_splash.add(progressBar, BorderLayout.SOUTH);
            fen_splash.setVisible(true);
    	}
    Donc c'est bien la fenetre fen_splash qu'il faut fermer et par la suite ouvrir une nouvelle fenêtre au premier plan.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     /* À la fin du traitement, affichage du programme. */
                    fen_splash.setVisible(false);
                    //fen_splash.dispose();
                    Fenetre fen = new Fenetre(model, licence_classe, preferences, connection, membres_connecter);
                    fen.setVisible(true);
                    fen.toFront();// Ne fonctionne pas!!
                    fen_splash.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
    Fenetre hérite de JFrame.
    Donc on a une nouvelle fenêtre qui s'ouvre, et devrait se mette en avant.

  6. #6
    Membre chevronné
    Avatar de Laine
    Femme Profil pro
    Doctorat informatique
    Inscrit en
    Mars 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Algérie

    Informations professionnelles :
    Activité : Doctorat informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 238
    Par défaut
    Bonjour

    Splash hérite de JPanel.
    Tu parles de SplashScreen ? Tu peux poster son code ?

Discussions similaires

  1. Réponses: 5
    Dernier message: 27/08/2007, 10h40
  2. [Débutant] Mettre une fenêtre au premier plan
    Par richard_sraing dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 07/06/2007, 11h02
  3. Réponses: 2
    Dernier message: 20/12/2006, 14h31
  4. Comment mettre une fenêtre au premier plan?
    Par damien99 dans le forum MFC
    Réponses: 11
    Dernier message: 30/08/2006, 11h37
  5. Mettre une fenêtre au premier plan
    Par Riko dans le forum Delphi
    Réponses: 4
    Dernier message: 20/06/2006, 19h30

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