Barre de Progression [Résolu]

AmineJava 16 Messages postés dimanche 14 décembre 2014Date d'inscription 17 mai 2015 Dernière intervention - 14 déc. 2014 à 16:50 - Dernière réponse : M.setVisible 1 Messages postés mardi 8 décembre 2015Date d'inscription 8 décembre 2015 Dernière intervention
- 8 déc. 2015 à 22:51
Bonjour/Bonsoir a tous !
Dans le cadre d'un projet java qui consiste a aspirer des pages web, je bloque sur la façon de coder une double barre de progression, l'une serais par exemple pour les lettres de A à Z et l'autre pour les informations contenu dans A, au moment ou toutes les données de la page A aurait ete aspirer (100%) le compteur de la 2éme barre de progression revient à zero tandis que la 1ér barre incrémente, ensuite sa sera B ... jusqu'à Z. Merci d'avance
Afficher la suite 

5 réponses

Répondre au sujet
M.setVisible 1 Messages postés mardi 8 décembre 2015Date d'inscription 8 décembre 2015 Dernière intervention - Modifié par M.setVisible le 8/12/2015 à 22:54
+1
Utile
Bonsoir ,
j'ai le même problème que vous aviez eu AmineJava !!
public class Vidal {

 public static void main(String[] args) throws IOException, InterruptedException  {
  
  String urlstart = JOptionPane.showInputDialog("URL");
  String REGEXP = JOptionPane.showInputDialog("REGEXP");
  PrintWriter ecrire = new PrintWriter ("vidal1","UTF-16LE");
  PrintWriter ecrire2 = new PrintWriter ("subst.dic","UTF-16LE");
  ecrire.write("\uFEFF");
  ecrire2.write("\uFEFF");
  
   for(char c= 'A'; c<='Z';++c)
  {    
  JFrame frame1 = new JFrame("Aspiration..");
  JProgressBar barre1 = new JProgressBar();
  JLabel UrlLabel1 = new JLabel();
  barre1.setStringPainted(true);
  FlowLayout disposition= new FlowLayout();
  frame1.setLayout(disposition);
  frame1.setLocation(450,300);
     frame1.add(UrlLabel1);
     frame1.add(barre1);
     frame1.setSize(350,100);
     frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     frame1.setVisible(true);
     for(int i=0;i<=100;i++)
     {
      java.lang.Thread.sleep(10);
      barre1.setValue(i);
      UrlLabel1.setText("asspiration de "+c);
     } 
    
         String line;
   Pattern p = Pattern.compile(REGEXP);
   Matcher m = p.matcher(urlstart);
   String u = Character.toString(c);
   String t = m.replaceAll(u);
   System.out.println(t+"==>asspirée");
   URL url = new URL(t);
   String regexp="\\s+<a href=\"Substance.+>(.+)</a>"; 
   BufferedReader lire = new BufferedReader(new InputStreamReader(url.openStream())); 
   do{ 
    line=lire.readLine(); 
    if(line == null) 
     break; 
    else{ 
     Pattern p2 = Pattern.compile(regexp); 
     Matcher m2 = p2.matcher(line); 
     if(m2.matches())  
       ecrire2.write(m2.group(1)+",.N\n"); 
     } ecrire.write(line); 
     ecrire.write(System.getProperty("line.separator"));
     } while(true);
   } 
  
  ecrire.close(); 
  ecrire2.close();
     } 
     }
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de M.setVisible
KX 15369 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 22 avril 2018 Dernière intervention - 14 déc. 2014 à 18:41
0
Utile
Bonjour,

Je ne sais pas trop comment tu as fait ton aspirateur, mais je ne vois pas trop comment tu fais pour obtenir les pages dans l'ordre alphabétique... Pour moi tu aspires une page, qui va elle même en aspirer un autre. Tu ne peux pas savoir combien tu as de pages à aspirer avant de les avoir toutes aspirer.

Alors comment calculer ton tantième alors que tu ne connais pas le total ?

Sinon pour les barres de progression en Java, rien de plus simple, tu fais une (ou plusieurs) JProgresssBar dont tu définis le minimum (0 ici), le maximum (ton nombre de pages à aspirer) et la valeur (le nombre de pages déjà aspirées).
Commenter la réponse de KX
AmineJava 16 Messages postés dimanche 14 décembre 2014Date d'inscription 17 mai 2015 Dernière intervention - 14 déc. 2014 à 19:00
0
Utile
Re:
Pour repondre a ta question a propos de comment aspirer ? enfaite il y'a 26 pages (une pour chaque alphabet) et dans chaque page(chaque alphabet biens sur) il y'a des noms de medicaments ( j'aspire à partir du site vidal) donc en gros c'est l'utilisateur qui donne la page A ou B ou C ... etc si il veut aspirer un medicament ou une substance, et si il y'a plusieurs lettres on aura besoin d'une double barre de progres !!
Commenter la réponse de AmineJava
cormandyr 600 Messages postés samedi 20 mai 2006Date d'inscription 8 juillet 2016 Dernière intervention - 17 déc. 2014 à 09:37
0
Utile
Salut je confirme ce qu'a dit KX

JProgressBar progressPage = new JProgressBar(0, 25);
JProgressBar progressMedoc = new JProgressBar();
//pour chaque page
for (int i = 0; i<26; i++)
{
    progressPage.setValue(i); //màj de la progression des pages
    progressMedoc.setMinimum(0);
    progressMedoc.setValue(0); // reset progression medoc
    int nbMedoc = getMedocCount();
    progressMedoc.setMaximum(nbMedoc);
    //pour chaque medoc
    for(int medocIndex = 0; medocIndex<nbMedoc; medocIndex++)
    {
        // màj progression medoc
        progressMedoc.setValue(medocIndex);
        aspireMedoc(medocIndex);
    }
}


--
Commenter la réponse de cormandyr
AmineJava 16 Messages postés dimanche 14 décembre 2014Date d'inscription 17 mai 2015 Dernière intervention - 24 déc. 2014 à 20:39
0
Utile
Merci Corman c'est gentil de m'aider j'ai pu finaliser mon projet et sa marche !
Commenter la réponse de AmineJava

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.