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

NetBeans Java Discussion :

ProgressBar en Java


Sujet :

NetBeans Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 31
    Par défaut ProgressBar en Java
    voici le code il est bon, mais c'est après un clique sur le bouton qu'il se lance.
    c'est pas ce que je veux.
    j'aimerai qu'il se lance automatiquement l'ouverture d'une fenêtre ou a l'ouverture des fenêtres. c'est-à-dire creer une Classe a part ce qui est deja fait. et l'appeler pour l'ouverture de chaque fenêtres 3 fenêtres précisément
    merci d'avance.
    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
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
     
    ort javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
     
     
    public class JProgress2 extends JFrame implements ActionListener, Runnable
    {
    	private JProgressBar progress;
    	private boolean isStarted;
    	private JButton bouton;
    	private int value;
     
    	public JProgress2 ()
    	{
    		super ("JProgressBar");
     
    		this.isStarted = false;
    		this.value = 0;
    		this.progress = new JProgressBar (0, 100);
    		this.progress.setStringPainted (true);
    		this.getContentPane ().add (this.progress);
     
    		bouton = new JButton ("start");
    		bouton.addActionListener (this);
    		this.getContentPane ().add (bouton, BorderLayout.NORTH);
     
    		this.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
    		this.setLocation (200, 200);
    		this.pack ();
    		this.setVisible (true);
    	}
     
     
    	// methode de ActionListener appelle suite au clic sur le bouton
    	public void actionPerformed (ActionEvent e)
    	{
    		if ( this.isStarted ) // effectue un reset
    		{	this.progress.setValue (0);
    			this.bouton.setText ("start");
    			this.value = 0;
    		}
    		else // effectue le start
    		{	this.bouton.setText ("reset");
    			this.bouton.setEnabled (false);
    			// ici on fait l'appel a la methode de lanceLongTraitement
    			// rappel : nous sommes dans le processus d'evenement
    			this.lanceLongTraitement ();
    		}
    		this.isStarted = ! this.isStarted;
    	}
     
     
     
    	// cree un nouveau Thread et appelle la methode start
    	// Cf une documentation sur les Thread si vous ne comprennez pas le
    	// mecanisme ....
    	public void lanceLongTraitement ()
    	{
    		Thread t = new Thread (this);
    		t.start ();
    		// maintenant nous rendons la main au processus d'evenement
    	}
     
    	// methode de l'interface Runnable
    	// lance un nouveau thread qui va executer le code de la methode longTraitement
    	public void run ()
    	{	this.longTraitement ();
    	}
     
     
    	public void longTraitement ()
    	{	// execute la succession d'operation ... 
    		// on est plus dans le processus d'evenement mais dans le nouveau Thread
    		for (int i = 0; i < 100; i++)
    		{	this.uneOperation ();
    			// maintenant on appelle la methode pour mettre a jour la barre
    			// de progression
    			this.majProgress (); 
    		}
    	}
     
     
     
    	// methode qui effectue une pause pour simuler une operation
    	private synchronized void uneOperation ()
    	{	try
    		{	this.wait (100);
    		}
    		catch (InterruptedException e)
    		{
    		}
    	}
     
     
     
    	// methode qui met a jour la JProgressBar par le processus d'evenement
    	// Pourquoi obliger l'execution de cette methode par le processus d'evenement ?
    	// -> Cf : la docs du tutoriel de Sun section : "Threads and Swing"
    	// <a href="http://java.sun.com/docs/books/tutorial/uiswing/mini/threads.html" target="_blank">http://java.sun.com/docs/books/tutor...i/threads.html</a>
    	public void majProgress ()
    	{	if ( SwingUtilities.isEventDispatchThread () )
    		{	progress.setValue (++value);
    		}
    		else
    		{	Runnable callMAJ = new Runnable ()
    			{	public void run ()
    				{	majProgress ();
                    }
                };
                SwingUtilities.invokeLater (callMAJ);
    		}
    	}
     
     
    	public static void main (String argv [])
    	{	new JProgress2 ();
    	}
     
    }

  2. #2
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 817
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 817
    Par défaut
    Citation Envoyé par bbs07 Voir le message
    voici le code il est bon, mais c'est après un clique sur le bouton qu'il se lance.
    c'est pas ce que je veux.
    j'aimerai qu'il se lance automatiquement l'ouverture d'une fenêtre ou a l'ouverture des fenêtres.
    Ben vire le bouton, remplace l'actionPerformed par une méthode, et appelle-la après l'affichage de ta fenêtre... non?
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 31
    Par défaut
    Je viré le bouton je ne sais pas comment faire ça beug de partout je ne peut même plus l'exécuter. quelle méthode mettre à la place de actionperformed? j'ai vraiment besoin de ton aide. j'ai mis le code sur le message précèdent.

    je veux que le progressbar se lance a l'ouverture de chaque fenêtre comment faire. si tu peu juste me corriger le code mis en place pour l'occasion merci d'avance.

  4. #4
    Membre émérite Avatar de fraco
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 750
    Par défaut
    je veux que le progressbar se lance a l'ouverture de chaque fenêtre
    clic droite sur la frame, propriétés, events, choisir l'évènement qui te convient, du genre WindowWillOpen ou WindowFocusGained (je n'ai pas Netbeans ouvert...)

    tu obtiens par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     private void formWindowGainedFocus(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowGainedFocus
           ...ici ton code;
    }

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 31
    Par défaut
    c'est mon code enfin c'est celui que j'ai trouver et qui est opérationnel. c'est juste le fait qu'il soit obliger de ce lancer que quand on click sur le bouton. je veux qu'il scanne les fichier avant les lancer et ce lance automatiquement. merci d'avance.
    juste deux ou trois petites modifications s'il vous plait sur ce code
    j'ai essayer de supprimer le bouton et changer ActionListenener il ne se passe rien.
    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
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    ort javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
     
     
    public class JProgress2 extends JFrame implements ActionListener, Runnable
    {
    	private JProgressBar progress;
    	private boolean isStarted;
    	private JButton bouton;
    	private int value;
     
    	public JProgress2 ()
    	{
    		super ("JProgressBar");
     
    		this.isStarted = false;
    		this.value = 0;
    		this.progress = new JProgressBar (0, 100);
    		this.progress.setStringPainted (true);
    		this.getContentPane ().add (this.progress);
     
    		bouton = new JButton ("start");
    		bouton.addActionListener (this);
    		this.getContentPane ().add (bouton, BorderLayout.NORTH);
     
    		this.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
    		this.setLocation (200, 200);
    		this.pack ();
    		this.setVisible (true);
    	}
     
     
    	// methode de ActionListener appelle suite au clic sur le bouton
    	public void actionPerformed (ActionEvent e)
    	{
    		if ( this.isStarted ) // effectue un reset
    		{	this.progress.setValue (0);
    			this.bouton.setText ("start");
    			this.value = 0;
    		}
    		else // effectue le start
    		{	this.bouton.setText ("reset");
    			this.bouton.setEnabled (false);
    			// ici on fait l'appel a la methode de lanceLongTraitement
    			// rappel : nous sommes dans le processus d'evenement
    			this.lanceLongTraitement ();
    		}
    		this.isStarted = ! this.isStarted;
    	}
     
     
     
    	// cree un nouveau Thread et appelle la methode start
    	// Cf une documentation sur les Thread si vous ne comprennez pas le
    	// mecanisme ....
    	public void lanceLongTraitement ()
    	{
    		Thread t = new Thread (this);
    		t.start ();
    		// maintenant nous rendons la main au processus d'evenement
    	}
     
    	// methode de l'interface Runnable
    	// lance un nouveau thread qui va executer le code de la methode longTraitement
    	public void run ()
    	{	this.longTraitement ();
    	}
     
     
    	public void longTraitement ()
    	{	// execute la succession d'operation ... 
    		// on est plus dans le processus d'evenement mais dans le nouveau Thread
    		for (int i = 0; i < 100; i++)
    		{	this.uneOperation ();
    			// maintenant on appelle la methode pour mettre a jour la barre
    			// de progression
    			this.majProgress (); 
    		}
    	}
     
     
     
    	// methode qui effectue une pause pour simuler une operation
    	private synchronized void uneOperation ()
    	{	try
    		{	this.wait (100);
    		}
    		catch (InterruptedException e)
    		{
    		}
    	}
     
     
     
    	// methode qui met a jour la JProgressBar par le processus d'evenement
    	// Pourquoi obliger l'execution de cette methode par le processus d'evenement ?
    	// -> Cf : la docs du tutoriel de Sun section : "Threads and Swing"
    	// <a href="http://java.sun.com/docs/books/tutorial/uiswing/mini/threads.html" target="_blank">http://java.sun.com/docs/books/tutor...i/threads.html</a>
    	public void majProgress ()
    	{	if ( SwingUtilities.isEventDispatchThread () )
    		{	progress.setValue (++value);
    		}
    		else
    		{	Runnable callMAJ = new Runnable ()
    			{	public void run ()
    				{	majProgress ();
                    }
                };
                SwingUtilities.invokeLater (callMAJ);
    		}
    	}
     
     
    	public static void main (String argv [])
    	{	new JProgress2 ();
    	}


    nul ne sait ce que nous réserve le jour suivant.

Discussions similaires

  1. Implémenter une ProgressBar en Java
    Par sarra12345 dans le forum NetBeans
    Réponses: 2
    Dernier message: 31/10/2011, 19h58
  2. le Java est la continuité du C++ ???
    Par Vincent PETIT dans le forum Débats sur le développement - Le Best Of
    Réponses: 33
    Dernier message: 25/08/2005, 20h17
  3. directx et java?? possible??
    Par jiraiya dans le forum DirectX
    Réponses: 3
    Dernier message: 09/07/2002, 19h55
  4. webcam : lire sur un port usb en c/c++ ou java. sous win. ?
    Par flo007 dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 24/05/2002, 23h24
  5. Service de nommage java C++
    Par Anonymous dans le forum CORBA
    Réponses: 3
    Dernier message: 15/04/2002, 12h48

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