E questo e' un esempio veloce veloce...

codice:
package dek;

import javax.swing.JFrame;

// NON SI SCRIVONO COSI' I PROGRAMMI!!!!!! ^___^

public class Prova extends JFrame implements DeKTaskObserver, Runnable {
    
    int t=0;
    final static int LUNG = 10000;
    DeKProgressBar barra;
    
    public Prova() {
        super("Prova DeKProgressBar");
        barra = new DeKProgressBar(200, this);
        getContentPane().add(barra);
        pack();
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Thread t = new Thread(this);
        t.start();
    }
    
    public static void main(String[] args) {
        Prova prova = new Prova();
    }

    // Implementazione dei metodi di Runnable
    
    public void run() {
        barra.setRunning(true);
        while (t<LUNG) {
            int delta =(int)(Math.random()*200);
            try { // Questo serve perche' ho usato sleep... Uff...
                Thread.sleep(100); // Fa (finta di fare) qualcosa
            } catch (Throwable t) {}
            t+=delta;
        }
        barra.setRunning(false);
    }
    
    // Implementazione dei metodi di DeKTaskObserver
    
    public int taskStatus(Bounds b) {
        if (b==Bounds.MIN)
            return 0;
        return LUNG;
    }
    
    public int taskStatus() {
        return t;
    }
    
}