[Java] opdracht laten uitvoeren met progressbar

Pagina: 1
Acties:

  • LittleWan
  • Registratie: Februari 2003
  • Laatst online: 13-03 18:21
hoi,
ik ben bezig met een projectje in java voor school. ik heb een classe geschreven waarmee ik een bestand kan zippen volgens het RLE principe. nu had ik graag gewild dat er een progressbar aanduid aan hoeveel procent ik zit van de totale bestandslengte.
ik heb het geprobeerd maar het lukt niet echt om die 2 dingen tegelijk te besturen. iemand een idee hoe ik dit moet oplossen?

http://www.sillevl.be - blog http://www.sillevl.be/blog - flickr http://www.flickr.com/sillevl


  • Macros
  • Registratie: Februari 2000
  • Laatst online: 30-04 09:28

Macros

I'm watching...

Je kan dat alleen doen als je er achter kan komen hoever je process is. Zelf gebruik ik hem ook. Je maakt een timer aan die elke zoveel seconden een event afvuurt. Dat event queried je process over hoever die is en update te progress bar. Zodra je process klaar is, dan stop je de timer. Dus je moet op een 1 of andere manier je process kunnen pollen.

"Beauty is the ultimate defence against complexity." David Gelernter


  • LittleWan
  • Registratie: Februari 2003
  • Laatst online: 13-03 18:21
Macros schreef op 24 april 2004 @ 14:44:
Je kan dat alleen doen als je er achter kan komen hoever je process is. Zelf gebruik ik hem ook. Je maakt een timer aan die elke zoveel seconden een event afvuurt. Dat event queried je process over hoever die is en update te progress bar. Zodra je process klaar is, dan stop je de timer. Dus je moet op een 1 of andere manier je process kunnen pollen.
het bestand wordt ingelezen met een while lus. kan ik miss vanuit die lus (zonder timer) per 100 lussen iets doorsturen naar een variabele, en die laten aanpassen door die progressbar?

http://www.sillevl.be - blog http://www.sillevl.be/blog - flickr http://www.flickr.com/sillevl


  • Macros
  • Registratie: Februari 2000
  • Laatst online: 30-04 09:28

Macros

I'm watching...

Ik doe ook zoiets. Ik weet hoeveel stappen ik moet, laten we zeggen 10.000.
Dan houdt ik een variabele bij die ik progress heb genoemt en die loopt altijd van 0 tot 100.
Mijn process update die variabele elke stap (progress = step/100;).
De timer leest die variabele uit en update the progressbar. Je moet nooit direct uit je process je progressBar updaten. Altijd maar 1 thread mag dat doen en zware berekeningen laat je nooit door die thread uitvoeren. Die thread wordt ook wel de eventhandling thread genoemd en is ook de thread die de code in je button en andere eventhandlers uitvoert.

"Beauty is the ultimate defence against complexity." David Gelernter