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

 Java Discussion :

Ouverture d'une fenêtre pendant 5s avant arrêt de l'application


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Par défaut Ouverture d'une fenêtre pendant 5s avant arrêt de l'application
    Dans mon programme, j'ai un bouton quitter sur chaque fenêtre, qui doit fermer la fenêtre, et en ouvrir une autre pendant 5 secondes, avant de couper.
    Le problème, c'est que la fenêtre ne se coupe pas toute seul.

    Voici le bout du code de la fenêtre quitter:

    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 static void main(String[] args) {
    		//On crée une nouvelle instance de notre FenetreTexte
    		FenetreQuitter fenetre = new FenetreQuitter();
    		fenetre.setVisible(true);//On la rend visible
     
    		try {
    				Thread.sleep(5000);
    				fenetre.dispose();
    			}
     
    			catch(InterruptedException e)
    {
    fenetre.dispose();
    }
    }
    et une fenêtre appelant cette page:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public void actionPerformed(ActionEvent e) {
    		Object source = e.getSource();if (source==bouton3){
    		JFrame FenetreQuitter = new  FenetreQuitter();
    		FenetreQuitter.setVisible(true);//On la rend visible
    		cettepage.this.setVisible(false);
    	}
    }
    Après si je met le try... dans les fenêtre appelant la fenêtre quitter, et bien j'ai une simple page blanche qui s'affiche, mais qui elle se referme bien.

    Je ne vois pas ce qui cloche

  2. #2
    Membre éclairé
    Homme Profil pro
    Première S
    Inscrit en
    Juillet 2010
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Première S

    Informations forums :
    Inscription : Juillet 2010
    Messages : 266
    Par défaut
    euh ...
    public static void main(String[] args) , c'est la fonction qui lance une aplication.
    Donc cette fonction en va pas être appelée à l'instanciation.
    Essaye en mettant un System.out.println("appelé !"); pour vérifier si oui ou non la fenêtre est affichée.

    Moi j'aurais fait une classe héritant JFrame ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public class FenetreQuitter extends JFrame{
     FenetreQuitter(){
      super();
      // setTitle etc.
      // présentation graphique
     }
    }
    et le code appelant cette classe :

    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 actionPerformed(ActionEvent e) {
    		Object source = e.getSource();if (source==bouton3){
    		JFrame FenetreQuitter = new  FenetreQuitter();
    		FenetreQuitter.setVisible(true);//On la rend visible
    		cettepage.this.setVisible(false);
                   try {
    				Thread.sleep(5000);
     
    			}
     
    			catch(InterruptedException e){
                              e.printStackeTrace();
                     }
                   System.exit(0);
    	}
    }
    en gros c'est ça, et le System.exit(0) détruit tout, FenetreQuitter y compris.
    excuse moi pour l'indentation, j'ai fait ça à la volée, et une zone éditable même sur Firefox ne vaux pas Eclipse

    a+

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Par défaut
    Bonjour,
    tout d'abord, dsl de la présentation de mon message précédent,
    mais un modérateur à dissocié un de mes sujets en deux autres, dout le manque de Bonjour...

    Pour le main, il ne s'agit que du bout du code, ou j'avais mis le try...
    J'ai essayé de mettre un System.out.print, mais effectivement il ne s'affiche pas.

    J'ai donc changé de technique et intégré votre code à une page,
    mais lors de la compilation, il y a deux erreurs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    MENU.java:159: e is already defined in actionPerformed(java.awt.event.ActionEvent)
    			catch(InterruptedException e){
    			                           ^
    MENU.java:160: cannot find symbol
    symbol  : method printStackeTrace()
    location: class java.lang.InterruptedException
                              e.printStackeTrace();
                               ^
    2 errors
    donc dans mon acion performed je met:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    public void actionPerformed(ActionEvent ed) {
    		Object source = ed.getSource();
    et il reste une erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    MENU.java:160: cannot find symbol
    symbol  : method printStackeTrace()
    location: class java.lang.InterruptedException
                              e.printStackeTrace();
                               ^
    1 error

  4. #4
    Membre éclairé
    Homme Profil pro
    Première S
    Inscrit en
    Juillet 2010
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Première S

    Informations forums :
    Inscription : Juillet 2010
    Messages : 266
    Par défaut
    Excuse moi, j'ai fait un erreur
    ce n'est pas e.printStackeTrace(); mais e.printStackTrace();

    mais Eclipse ne t'as-t-il pas montré l'erreur ?
    Normalement, il propose : "Change to printStackTrace();" (quand on clique sur l'icône du warning )

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Par défaut
    Merci,
    je vais essayer de corriger,
    Et je ne suis pas sous Eclipse, mais sur Scite.
    C'est un éditeur de texte ultra simple à utiliser, qui est bien pour les premier pas en java ^^

  6. #6
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Par défaut
    Étrange étrange,
    ça ne marche toujours pas, j'obtiens une fenêtre avec un titre quitter, mais qui est toute blanche (cf pièce jointe).
    Voici le code complet de ma fenêtre quitter:

    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
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.ActionEvent;
     
    public class FenetreQuitter extends MENU {
    	private JLabel label;
    	private JLabel image;
     
    	public FenetreQuitter(){
    		super();
     
    		build();//On initialise notre fenêtre
    	}
     
    	private void build(){
    		setTitle("Quitter"); //On donne un titre à l'application
    		setSize(800,650); //On donne une taille à notre fenêtre
    		setLocationRelativeTo(null); //On centre la fenêtre sur l'écran
    		setResizable(true); //On permet le redimensionnement
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //On dit à l'application de se fermer lors du clic sur la croix
    		setContentPane(buildContentPane());
    	}
     
     
    	private JPanel buildContentPane(){
    		JPanel panel = new JPanel();
    		panel.setLayout(new BorderLayout());
     
    		JLabel label = new JLabel("J'espère que mon application vous a plu =D",JLabel.CENTER);
    		panel.add(label,BorderLayout.NORTH);
     
    		ImageIcon icone = new ImageIcon(getClass().getClassLoader().getResource("image/quitter.gif"));
    		JLabel image = new JLabel(icone,JLabel.CENTER);
    		panel.add(image,BorderLayout.CENTER);
     
    		return panel;
    	}
     
     
     
    	public static void main(String[] args) {
     
     
    }
     
    	}

    Et voici l'actionPerformed d'une fenêtre utilisant le fenêtre quitter
    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
    public void actionPerformed(ActionEvent ed) {
    		Object source = ed.getSource();
     
    	if(source == bouton){
     
     
    		final JFrame bouton1 = new  bouton1();
    		bouton1.setVisible(true);//On la rend visible
    		MENU.this.setVisible(false);
     
     
    	} else if(source == bouton2){
     
    		final JFrame Coder = new  Coder();
    		Coder.setVisible(true);//On la rend visible
    		MENU.this.setVisible(false);
     
    		} else if (source==bouton3){
    		JFrame FenetreQuitter = new  FenetreQuitter();
    		FenetreQuitter.setVisible(true);//On la rend visible
    		MENU.this.setVisible(false);
     
    		  try {
    				Thread.sleep(5000);
     
    			}
     
    			catch(InterruptedException e){
                              e.printStackTrace();
                     }
                   System.exit(0);
    	}
     
     
     
     
    }
    :
    Images attachées Images attachées  

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

Discussions similaires

  1. Détecter l'ouverture d'une fenêtre
    Par Matt2094 dans le forum Delphi
    Réponses: 9
    Dernier message: 30/08/2006, 12h48
  2. Réponses: 12
    Dernier message: 06/06/2006, 12h13
  3. Erreur sur l'ouverture d'une fenêtre popup
    Par misa dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 25/11/2005, 15h21
  4. Ouverture d'une fenêtre ms-dos malgré l'utilisation de .pyw
    Par Ank dans le forum Général Python
    Réponses: 2
    Dernier message: 21/10/2005, 14h33
  5. [HTTPS] ouverture d'une fenêtre
    Par Boosters dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 07/01/2005, 14h08

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