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

avec Java Discussion :

Débuter avec la progressBar


Sujet :

avec Java

  1. #21
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    tu ne serais pas occupé de mélanger du swing et du SWT là?? Toutes les informations qu'on t'as données concernent swing.

  2. #22
    Membre actif Avatar de pendoRa
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mai 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 317
    Points : 278
    Points
    278
    Par défaut
    Oui, je me suis trompé, j'ai changé pour un JProgressBar, cela va beaucoup mieu désormais.
    Autant pour moi.

    Cependant, j'ai un soucis, j'ai réussi à placer mon JProgressBar sur ma fenêtre, j'arrive à le faire incrémenter ( Thread.sleep(100); par exemple), mais lorsque que je veux activer le chargement via un bouton ( Listener ), il fait le traitement en arrière plan.
    J'avais trouvé un post identique sur le forum, mais je ne le retrouve plus :s :s.
    Je peux hélas pas poster le code avant 18h.
    Mais si cela peux vous aider, j'ai adapter ce code la (exemple java2s ) :
    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
    public class Main extends JPanel {
     
      JProgressBar pbar;
     
      static int min = 0;
     
      static int max = 100;
     
      public Main() {
        pbar = new JProgressBar();
        pbar.setMinimum(min);
        pbar.setMaximum(max);
        add(pbar);
     
        JFrame frame = new JFrame("Progress Bar Example");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setContentPane(this);
        frame.pack();
        frame.setVisible(true);
     
        for (int i = min; i <= max; i++) {
          final int percent = i;
          try {
            SwingUtilities.invokeLater(new Runnable() {
              public void run() {
                updateBar(percent);
              }
            });
            Thread.sleep(100);
          } catch (InterruptedException e) {
          }
        }
      }
     
      public void updateBar(int newValue) {
        pbar.setValue(newValue);
      }
     
      public static void main(String args[]) {
        new Main();
      }
    }
    donc je l'ai placé dans un listener, mais il exécute la tache en arrière plan, ne retrouvant pas le post, avez vous uneidée ? ( je continu à chercher néanmoins).
    Merci

  3. #23
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 084
    Points : 7 998
    Points
    7 998
    Par défaut
    Faut lancer ta boucle dans un thread ?
    Et bien entendu laisser le invokeLater sur le composant swing que tu fais les setValue().
    Sinon je ne vois rien de suspect en executant ton code.

  4. #24
    Membre actif Avatar de pendoRa
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mai 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 317
    Points : 278
    Points
    278
    Par défaut
    Voila le bout de code de ma ProgressBar :
    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
    int min = 0;
    int max = 0;
     
    // ...
     
    for (int k = min; k <= max; k++) {
            	final int percent = k;
            	try {
            		SwingUtilities.invokeLater(new Runnable() {
            			public void run() {
            				updateBar(percent);
     
            			}
            		});
            		Thread.sleep(50);
            	}catch (InterruptedException e1) {
     
            	}
            }
        }
          private void updateBar(int newValue) {
    						bar.setValue(newValue);
     
     
        if (newValue==100) {
        	System.out.println("*** CHARGEMENT TERMINE ***");
     
        	Thread.setDefaultUncaughtExceptionHandler(null);
     
        }
    !
    Je bosse sur la boucle en ce moment même.

    Sinon pour le reste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    boutonExec.setActionCommand("boutonOK");
            boutonExec2.setActionCommand("boutonTest");
            itemCfg.setActionCommand("Configurer");
            itemConnect.setActionCommand("boutonOK");

    correspondent les méthodes suivantes :
    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
    public void actionPerformed(ActionEvent aActionEvent) {
     
        		String action = aActionEvent.getActionCommand();
     
        	    if(action.equals("Configurer"))
        		{
        			if(this.chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION)
        			{
        				this.textChemin.setText(this.chooser.getSelectedFile().getAbsolutePath());
        			}
        		}
     
     
        		if(action.equals("boutonOK"))
        		{
        			try
        			{
        				Runtime.getRuntime().exec(new String[] {chemin,  "C:\\Users\\pendoRa\\Music\\son\\LIFE.mp3" } );
     
        			}						//	"http://pendora.fr.nf:8000/listen.pls"
        			catch (IOException aIOException)
        			{
        				JOptionPane.showMessageDialog(this, aIOException.getMessage(), "Erreur", JOptionPane.ERROR_MESSAGE);
        			}
     
        		}
     
        		if(action.equals("boutonTest"))
        		{
        			xpa = null;
        	        try
        	        {
        	            xpa = new XMLEncoder(new BufferedOutputStream(new FileOutputStream("config.xml")));
        	            ((XMLEncoder) xpa).writeObject(textChemin);
     
        	        }
        	        catch(FileNotFoundException e1)
        	        {
        	            e1.printStackTrace();
        	        }
        	        ((XMLEncoder) xpa).close();
     
        	        Exception exception1;
     
        	        ((XMLEncoder) xpa).close();
        	        return;
        	    }
        		if(action.equals("XML")) {
     
        			System.out.println("ligne lu dans le xml : ");
        			SAXBuilder sxb = new SAXBuilder();
                    Document document = null;
                    try
                    {
                        document = sxb.build(new File("config.xml"));
                        org.jdom.Element racine = document.getRootElement();
                        XPath xpa = null;
                        xpa = XPath.newInstance("//string");
                        System.out.println(xpa.valueOf(racine));
                        chemin = xpa.valueOf(racine);
                        System.out.println(chemin);
                    }
                    catch(JDOMException e1)
                    {
                        e1.printStackTrace();
                    }
                    catch(IOException e1)
                    {
                        e1.printStackTrace();
                    }
                    return;
     
        		}
     
         }
    puis ma classe qui "parse" mon fichier xml de configuration :
    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
    public static class MyTools
        {
     
            public void emplacement(String chemin, String textChemin)
            {
                try
                {
                    Runtime.getRuntime().exec(new String[] {
                        chemin, textChemin
                    });
                }
                catch(IOException e)
                {
                    e.printStackTrace();
                }
            }
     
            public static String emplacement(String chemin)
            {
                SAXBuilder sxb = new SAXBuilder();
                Document document = null;
                try
                {
                    document = sxb.build(new File("config.xml"));
                    org.jdom.Element racine = document.getRootElement();
                    XPath xpa = null;
                    xpa = XPath.newInstance("//string");
                    System.out.println(xpa.valueOf(racine));
                    chemin = xpa.valueOf(racine);
                }
                catch(JDOMException e1)
                {
                    e1.printStackTrace();
                }
                catch(IOException e1)
                {
                    e1.printStackTrace();
                }
                return null;
            }
     
            public MyTools()
            {
            }
        }
    Attention, je ne demande pas de me "faire" mon code, je post juste au cas ou des améliorations seraient nécéssaire. Car pour le moment, j'ai quelques problème de fonctionnement. Mais je souhaite juste pour le moment obtenir de l'aide sur ma progressBar ( cf : image jointe ).
    ( ps : la JList je ferais en dernier la correspondance, juste un le lien JButton => ProgressBar m'aiderai ! )
    ps 2 : ne pas faire attention à l'aspect graphique de l'appli
    Merci a vous

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. débuter avec Visual .NET
    Par akimmm dans le forum MFC
    Réponses: 4
    Dernier message: 28/10/2005, 04h53
  2. [GridBagLayout] Comment débuter avec ce layout
    Par Bighobbit dans le forum Débuter
    Réponses: 12
    Dernier message: 28/09/2005, 17h13
  3. [MFC je crois] Débuter avec visual c++
    Par flzox dans le forum MFC
    Réponses: 6
    Dernier message: 28/06/2005, 18h31
  4. [JAXP] Débuter avec XML et Java
    Par Fleep dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 04/05/2005, 11h27
  5. Débuter avec Java
    Par reptils dans le forum Débuter avec Java
    Réponses: 9
    Dernier message: 11/07/2004, 21h26

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