# Universell einsetzbarer Ladebalken, Progresssbar?



## pocketom (12. Jun 2007)

Hallo,

habe ein kleines Programm (SWT) geschreiben das teilweie relativ lange Rechenzeiten (10-60 Sek.) mit sich bringt. So z.B. beim Laden und Parsen von Dateien(>100MB), Teilweise bei der Auswertung, Verarbeitung, Datei schreiben, usw. Ich brauche derzeit insges. an 7 Stellen einen Progressbar damit der User nicht denkt das Programm wäre hängengeblieben, evtl. bald noch mehr. Nun wäre meine Frage, gibts eine Möglichkeit für alle dieser rechenintensiven Operationen ein und den selben Ladebalken, (bzw. das selbe Objekt, Klasse) zu benutzen, oder muss ich für jedes dieser Teilprobleme einen eigenen Progressbar(bzw. halt eine eigene Ansteuerung) entwickeln? Hier im Forum gibts natürlich zig Beispiele zu Progressbars, aber einen generalisierbaren Ansatz den man möglichst einfach an verschiedenen Stellen zum Einsatz bringen kann hab ich leider nicht gefunden.

Dank Euch schonmal für Eure Ideen und Anregungen


----------



## Wildcard (12. Jun 2007)

Natürlich geht das.
Swing hat doch auch eine JProgressBar.


----------



## pocketom (13. Jun 2007)

Ok, aber ich benutze doch SWT?  ???:L Irgendwie peil ichs nicht so ganz. Vielliecht hab ich meine Frage auch undeutlich formuliert. Ich möchte dass immer dann wenn mein Programm rechnet(also egal wie kurz oder wie lang) einen Balken anzeigen lassen. Die vorhandenen Klassen, Methoden möchte ich dazu wenn irgendwie möglichnicht modifizieren müssen, der ProgressBar soll sich selbständig um die Ermittlung seines Status und der Aktualisierung seines Fortschrittes kümmern. Er soll beim Programmstart einfach nur mit den Methoden initialisiert werden auf die er quasi anspringen soll. Geht sowas? Möchte wiegesagt wenn möglich die Aktualisierung der Fortschrittanzeige nicht in jede betroffene Klasse bzw. Methode implementieren. Kennst du hierfür ein SWT Beispiel? Die die ich gefunden habe sind alle eher so nach der von Hand zu Fuß Methode...


----------



## FelixB (13. Jun 2007)

??? das Programm rechnet doch permanent. du bewegst die Maus - das Programm arbeitet. Du drückst eine Taste - wieder Rechenarbeit.

nach deiner Logik wird der Progress-Bar nur dann nicht angezeigt, wenn absolut nichts nichts passiert. Ist das wirklich so gedacht?


----------



## Guest (13. Jun 2007)

> Er soll beim Programmstart einfach nur mit den Methoden initialisiert werden auf die er quasi anspringen soll.


 Also natürlich nicht für Bewegen der Maus, nur für eine Liste von Methoden die rechenintensiv sind, so dass man auch jederzeit wenn eine neue hinzukommt die schnell beim progressbar registrieren kann.


----------



## pocketom (13. Jun 2007)

Und wie mach ich das?


----------



## Wildcard (13. Jun 2007)

pocketom hat gesagt.:
			
		

> Ich möchte dass immer dann wenn mein Programm rechnet(also egal wie kurz oder wie lang) einen Balken anzeigen lassen. Die vorhandenen Klassen, Methoden möchte ich dazu wenn irgendwie möglichnicht modifizieren müssen, der ProgressBar soll sich selbständig um die Ermittlung seines Status und der Aktualisierung seines Fortschrittes kümmern.


Vergiss es. Das ist schon mathematisch unmöglich (und damit absolut unmöglich), da sich nicht allgemein feststellen lässt ob ein Algorithmus terminieren wird oder nicht.


----------



## Guest (13. Jun 2007)

Hallo 

warum nimmst du nicht ne Progressbar von swt, wenn du den style da swt.intermdiate setzt, Brauchst du keinen   anfangs und endwert


----------



## pocketom (20. Jun 2007)

Hmmm, raff ich ned so ganz. Was bewirkt INTERMEDIATE? Irgednwo her muss der Progressbar ja wissen in welchem Bereich er angesprochen werden möchte  ???:L


----------



## Wildcard (20. Jun 2007)

Das bedeutet einfach das sie nicht von 0-100% läuft, sondern einfach um zu zeigen das sich noch was tut.
Denk nicht weiter drüber nach, die ultimative, gedankenlesende ultra ProgressBar gibt es nicht  :wink:


----------



## Guest (20. Jun 2007)

Jup, das ist mir mittlerweile auch klar geworden. Habe mir selbst eine Progressbarklaasse gemacht, aber das einzige was daran funktioniert ist der Fortschrittsbalken selbst, seltsamerweise krieg ichs aber nicht mal hin eine Prozentanzeige (Label das immer parallel aktualisiert werden soll) zum laufen zu bringen, geschweige denn das man eine Description setzen kann. Das Teil verhält sich sehr sehr komisch. Vielleicht kannst du dir das mal kurz ansehen, Code hab ich hier gepostet:   ProgressBar Probleme


Würde sagen, damit ist der Thread hier abgeschlossen.


----------



## Wildcard (20. Jun 2007)

Anonymous hat gesagt.:
			
		

> Das Teil verhält sich sehr sehr komisch. Vielleicht kannst du dir das mal kurz ansehen, Code hab ich hier gepostet:   ProgressBar Probleme


Ich halte SWT für ein absolut grottiges Toolkit das Swing um Jahre hinterher ist (bzw. ohne ein deutlich verbessertes JFace niemals auch nur annähernd die Mächtigkeit von Swing erreichen kann) insofern klinke ich mich hier aus  :wink:


----------



## pocketom (20. Jun 2007)

Jetzt hab ich aber schon SWT eingesetzt. Das werd ich nicht mehr so einfach los  :cry:


----------

