Barre de Progression

Résolu
AmineJava Messages postés 13 Date d'inscription dimanche 14 décembre 2014 Statut Membre Dernière intervention 17 mai 2015 - Modifié par AmineJava le 14/12/2014 à 16:52
M.setVisible Messages postés 1 Date d'inscription mardi 8 décembre 2015 Statut Membre Dernière intervention 8 décembre 2015 - 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

5 réponses

M.setVisible Messages postés 1 Date d'inscription mardi 8 décembre 2015 Statut Membre Dernière intervention 8 décembre 2015 1
Modifié par M.setVisible le 8/12/2015 à 22:54
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();
     } 
     }
1
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 127
14 déc. 2014 à 18:41
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).
0
AmineJava Messages postés 13 Date d'inscription dimanche 14 décembre 2014 Statut Membre Dernière intervention 17 mai 2015
14 déc. 2014 à 19:00
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 !!
0
cormandyr Messages postés 600 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 8 juillet 2016 11
17 déc. 2014 à 09:37
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);
    }
}


--
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
AmineJava Messages postés 13 Date d'inscription dimanche 14 décembre 2014 Statut Membre Dernière intervention 17 mai 2015
24 déc. 2014 à 20:39
Merci Corman c'est gentil de m'aider j'ai pu finaliser mon projet et sa marche !
0
Rejoignez-nous