Pagina 3 di 7 primaprima 1 2 3 4 5 ... ultimoultimo
Visualizzazione dei risultati da 21 a 30 su 69
  1. #21
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Allora perche' il numero lo chiedi nel main? Chiedilo prima di istanziare tcounter, poi lo passi al costruttore di tcounter che modificherai opportunamente per accettare un int come parametro.

  2. #22
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    ok ci provo

  3. #23
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    370
    anche io ho problemi con la progress bar

    ho messo la classe

    class tCounter extends Thread {

    public void run() {
    jProgressBar1.setValue((int)caricaper);
    jLabel3.setText("copiate "+numf+" immagine su "+filenumber);
    }
    }

    e poi nel programma alla funzione che mi necessita ho aggiunto

    private void Copiafile(File orig,File dest){

    try{
    FileInputStream in = new FileInputStream(orig);
    FileOutputStream out = new FileOutputStream(dest);
    int c;
    byte[] bytes = new byte[1024];
    while((c=in.read(bytes))!=-1)
    {
    out.write(bytes,0,c);

    }
    in.close();
    out.close();
    System.out.println((int)caricaper);
    tCounter myCounter = new tCounter();
    myCounter.start();
    }
    catch (Exception e){
    e.printStackTrace();
    }
    }

    mi aggiorna solamente alla fine lo stesso mi sapete aiutare?
    grazie

  4. #24
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    I thread in swing vengono spesso gestiti in maniera inaspettata. Meglio usare un swing.Timer per operazioni come queste.
    codice:
    class tCounter implements ActionListener {
       public void actionPerformed(ActionEvent evt) {
          jProgressBar1.setValue((int)caricaper);
          jLabel3.setText("copiate "+numf+" immagine su "+filenumber);
       }
    }
    
    
    //Nell'altra classe
    int speed = 100; //La barra sara aggiornata ogni decimo di secondo.
    timer = new Timer(speed, this);
    timer.start();

  5. #25
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    370
    mi da errore ma magari ho messo qualcosa in un posto sbagliato

    questo è il codice

    /*
    * muovifoto.java
    *
    * Created on 23 luglio 2007, 15.19
    */

    package muovifoto;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.*;
    import java.io.File.*;
    import java.lang.String.*;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.text.DecimalFormat;
    import java.text.Format;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import javax.swing.Timer;


    public class muovifoto extends javax.swing.JFrame {

    /** Creates new form muovifoto */
    public muovifoto() {

    initComponents();

    }

    <editor-fold>
    ....
    </editor-fold>

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    long totalsize, filenumber;
    speed = 100; //La barra sara aggiornata ogni decimo di secondo.

    timer = new Timer(speed, this);
    timer.start();

    Date date = new Date();
    SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
    String datams = formatter.format(date);
    faidir(datams,0);
    jLabel2.setText("Copia eseguita con successo");

    }



    private void Copiafile(File orig,File dest){
    caricaper = 0;
    try{
    FileInputStream in = new FileInputStream(orig);
    FileOutputStream out = new FileOutputStream(dest);
    int c;
    byte[] bytes = new byte[1024];
    while((c=in.read(bytes))!=-1)
    {
    out.write(bytes,0,c);
    }
    in.close();
    out.close();
    System.out.println((int)caricaper);

    }
    catch (Exception e){
    e.printStackTrace();
    }
    }

    public void conoscidim(String sDir, String dDir) {
    ....
    }

    public void copyDirectory(String sDir, String dDir) throws IOException {

    ...
    Copiafile(srcDir, dstDir);

    }
    }



    public void faidir(String datadir, int numpres) {

    ...
    }

    class tCounter implements ActionListener {
    public void actionPerformed(ActionEvent evt) {
    jProgressBar1.setValue((int)caricaper);
    jLabel3.setText("copiate "+numf+" immagine su "+filenumber);
    }
    }

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
    public void run() {
    new muovifoto().setVisible(true);

    }
    });
    }







    // Variables declaration - do not modify
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JProgressBar jProgressBar1;
    // End of variables declaration

    private int filenumber;
    private double propor;
    private double totalsize;
    private int numf;
    private double caricabar;
    private double caricaper;
    private int speed;
    private Timer timer;

    }


    questa riga da errore timer = new Timer(speed, this);

    grazie

  6. #26
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Si, scusami ho fatto copia-incolla da un codice vecchio. Al posto di this metti un istanza del task che vuoi eseguire (new tCounter()).

  7. #27
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    370
    speed = 100; //La barra sara aggiornata ogni decimo di secondo.
    timer = new tCounter();
    timer.start();

    ho cambiato cosi e mi da errore alla riga
    timer.start();

  8. #28
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Credo tu abbia fatto confusione mentre leggevi.
    Al posto di this metti un istanza del task che vuoi eseguire (new tCounter()).
    quindi
    codice:
    timer = new Timer(speed, new tCounter(););
    timer.start();
    Un timer funziona cosi'. Tu gli passi un intervallo e un ActionListener.
    Dal momento che fai start ogni intervallo di millisecondi chiama il metodo ActionPerformed dell'ActionListener che gli hai passato.
    Naturalmente dovrai gestire anche la terminazione del timer, altrimenti continua ad andarti all'infinito. Potresti mettere alla fine del metodo ActionPerformed un controllo tipo if(numf==filenumber), in caso affermativo chiami timer.stop.

  9. #29
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    370
    non mi da nessun errore ma non fa neanche niente

  10. #30
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Il metodo jButton1ActionPerformed quando viene richiamato. Posta la parte di codice che lo usa.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.