sobota, 13 grudnia 2008

Progress API

Progress API jest malutką ale użyteczną biblioteką wchodzącą w skład platformy NetBeans i oferującą programiście dostęp do paska postępu przydatnego przy długich zadaniach wykonywanych w tle.
To co nas będzie interesowało to ProgressHandleFactory oraz ProgressHandle.


public void startMyTask() {
Runnable runnable = new Runnable() {
public void run() {
ProgressHandle handle = ProgressHandleFactory.createHandle(
"Moje długie zadanie");
int count = 57;
handle.start(count);
for(int i = 0; i < count; i++){
      handle.progress(i);
        if(i > (count/2)){
          handle.progress("Połowa zadania już za nami");
          }
          try {
          Thread.sleep(200);
          } catch (InterruptedException ex) {
            Exceptions.printStackTrace(ex);
          }
        }
      handle.finish();
    }
};
(new Thread(runnable)).start();
}

Uruchomienie powyższej metody spowoduje pokazanie się paska postępu w prawym dolnym rogu aplikacji.



Po kliknięciu na pasek postępu możemy zobaczyć także informacje szczegółowe na temat wykonywanego zadania.



handle.start(count) uruchamia pasek postępu informując go z ilu kroków będzie się składać zadanie. handle.progress(i) informuje ile kroków już mamy za sobą, handle.progress("Połowa zadania już za nami") dodaje opis do widoku szczegółowego zadania, handle.finish() kończy i ukrywa pasek.

2 komentarze:

Jacek Laskowski pisze...

Ale krótki i treściwy post! Więcej takich proszę, szczególnie że poruszasz tematykę, o której nikt więcej w Polsce nie pisze (i w ten sposób Twój blog stał się moimi wrotami w świat inżynierii netbeansowej).
Z niecierpliwością oczekuję kolejnych postów netbeansowych z punktu widzenia programisty. Jakie oczekuję?! Ja ich po prostu żądam więcej! Może coś pod choinkę, he?! ;-)

Jacek
Notatnik Projektanta Java EE

Marek Kliś pisze...

No to Jacku połechtałeś teraz moją próżność ;)
Obiecuję jeszcze coś przed karpiem napisać.

Marek