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

EDT/SwingWorker Java Discussion :

Composant InfiniteProgressPanel qui ne s'affiche pas


Sujet :

EDT/SwingWorker Java

  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 958
    Par défaut Composant InfiniteProgressPanel qui ne s'affiche pas
    bonjour

    j'essaie d'implémenter le composant InfiniteProgressPanel ( http://gfx.developpez.com/tutoriel/java/swing/wait/ ) mais rien ne s'affiche, ma fenêtre s'affiche et ne fait rien pendant 5 secondes.

    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
    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
    package gui;
     
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.EventQueue;
     
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.SwingUtilities;
    import javax.swing.border.EmptyBorder;
    import javax.swing.JLabel;
     
    public class fenetre extends JFrame {
     
        private JPanel contentPane;
     
        /**
         * Launch the application.
         */
        public static void main(String[] args) {
            EventQueue.invokeLater(new Runnable() {
                public void run() {
                    try {
                        fenetre frame = new fenetre();
                        frame.setVisible(true);
     
                        final InfiniteProgressPanel infinity =new InfiniteProgressPanel();
                        frame.setGlassPane(infinity);
                        infinity.setBackground(Color.black);
                        infinity.start();
     
                        SwingUtilities.invokeLater(new Runnable() {
     
                            @Override
                            public void run() {
                                try {
                                    Thread.sleep(5000);
                                    infinity.stop();
                                } catch (InterruptedException e) {
                                    // TODO Auto-generated catch block
                                    e.printStackTrace();
                                }
     
                            }
                        });
     
     
     
     
     
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            });
        }
     
        /**
         * Create the frame.
         */
        public fenetre() {
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setBounds(100, 100, 450, 300);
            contentPane = new JPanel();
            contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
            setContentPane(contentPane);
            contentPane.setLayout(null);
     
            JLabel lblNewLabel = new JLabel("New label");
            lblNewLabel.setBounds(31, 71, 99, 14);
            contentPane.add(lblNewLabel);
     
        }
    }
    pouvez-vous m'aider?

  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
    C'est parce que tu dois mettre ton "opération longue" dans un thread (ton sleep en l'occurence). Et la tu verras l'animation sinon l'interface restera bloqué pendant 5 secondes.

    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
    package gui;
     
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.EventQueue;
     
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.SwingUtilities;
    import javax.swing.border.EmptyBorder;
    import javax.swing.JLabel;
     
    public class fenetre extends JFrame
    {
     
    	private JPanel	contentPane;
     
    	/**
             * Launch the application.
             */
    	public static void main(String[] args)
    	{
    		EventQueue.invokeLater(new Runnable()
    		{
    			public void run()
    			{
    				try
    				{
    					fenetre frame = new fenetre();
    					frame.setVisible(true);
     
    					final InfiniteProgressPanel infinity = new InfiniteProgressPanel();
    					frame.setGlassPane(infinity);
    					//  infinity.setBackground(Color.black);
     
    					infinity.start();
     
    					Thread t = new Thread()
    					{
    						public void run()
    						{
     
    							try
    							{
    								Thread.sleep(5000);
    							} catch (InterruptedException e)
    							{
    								// TODO Auto-generated catch block
    								e.printStackTrace();
    							}
    							infinity.stop();
    						}
     
    					};
    					t.start();
     
    				} catch (Exception e)
    				{
    					e.printStackTrace();
    				}
    			}
    		});
    	}
     
    	/**
             * Create the frame.
             */
    	public fenetre()
    	{
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setBounds(100, 100, 450, 300);
    		contentPane = new JPanel();
    		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    		setContentPane(contentPane);
    		contentPane.setLayout(null);
     
    		JLabel lblNewLabel = new JLabel("New label");
    		lblNewLabel.setBounds(31, 71, 99, 14);
    		contentPane.add(lblNewLabel);
     
    	}
    }
    (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 éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 958
    Par défaut
    merci pour ta réponse rapide.ça marche.

    une autre question : voici un extrait de mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    final InfiniteProgressPanel infinity = new InfiniteProgressPanel();
                        //infinity.setBounds(50, 50, 50, 50);
                        infinity.setLocation(50, 50);
                        frame.setGlassPane(infinity);
    je voudrais que le composant s'affiche au milieu de la fenêtre mais avec mon code il "tourne" autour de la fenêtre, son centre se déplaçant sur les 4 bords.

    comment l'avoir au milieu?
    je vais bien sûr chercher de mon côté...

    olivier

  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
    Je pense que tu dois créer et assigner le glasspane avant de rendre la frame visible alors ca devrait résoudre ton problèmes (mais il y a peut être une autre solution).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    fenetre frame = new fenetre();
    final InfiniteProgressPanel infinity = new InfiniteProgressPanel();
    frame.setGlassPane(infinity);
    frame.setVisible(true);
    mais si d'aventure tu venais a resizer la frame pendant ce temps, alors le infinitepanel ne sera pas remis au millieu.
    (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

Discussions similaires

  1. Composants qui ne s'affichent pas
    Par Naerie dans le forum Composants
    Réponses: 3
    Dernier message: 24/12/2014, 00h25
  2. Composant JSF qui ne s'affiche pas
    Par minooo dans le forum JSF
    Réponses: 6
    Dernier message: 05/06/2013, 16h15
  3. Composants qui ne s'affiche pas dynamiquement
    Par dogua dans le forum ASP.NET
    Réponses: 6
    Dernier message: 17/10/2010, 15h28
  4. [debutant][Tomcat]Images qui ne s'affichent pas
    Par omega dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 07/04/2004, 09h44
  5. [MFC] Ces fenêtres qui ne s'affichent pas..
    Par Davide dans le forum MFC
    Réponses: 3
    Dernier message: 19/11/2003, 11h30

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