progressBar

hi@all
ich hab mich mal gefragt ob es möglich wäre einen schönen ProgressBar zu proggen?
also ich hätte gerne ein ProgressBar das so flüssig läuft wie z.B. bei Spielen.
Also ich mein z.B. Age of Empires oder WOW, die fortschrittsbalken wenn ein Gebüude gebaut wird.
Wie würde man sowas z.B. in c++ oder gar java (falls das überhaupt geht) proggen?
dazu bräuchte man doch OpenGL oder nicht? wie würde man sowas damit machen? hat einer ahnung/Erfahrung damit?
 
Zwecks Java kannste mich fragen, c++ - kA

Meinste mit ProgressBar nen Fortschrittsbalken wie viel Prozent (oder auch anderes) von einem gewissen Vorgang schon abgeschlossen ist?

Dazu könntest du dir mal (nein wie ausgefallen ;) ) die JPorgressBar anschauen. Zusätzlich empfehle ich SwingUtilities.invokeLater und ne for-schleife in nen Extra Thread die das ganze ausführt.
 
*g* schon klar, hab keine Probleme mit java *g*
meine frage ist nur wie man die Grafikkarte dazu bring einen fortschrittsbalken zu berechnen (oder nennt man das rendern?) damit der was "schöner" aussieht und flüssiger läuft :D
 
damit der fortschrittsbalken flüssig läuft, musst du die fortschrittsmethode entsprechend implementieren. mit der grafikkarte hat das im prinzip nichts zu tun.
 
Original von benwilliam
*g* schon klar, hab keine Probleme mit java *g*
meine frage ist nur wie man die Grafikkarte dazu bring einen fortschrittsbalken zu berechnen (oder nennt man das rendern?) damit der was "schöner" aussieht und flüssiger läuft :D

Hä? Was hat das mit der GraKa zu tun? Wie gesagt fürs flüssige laufen SwingUtilities.invokeLater und Threads allgemein (aber vorsicht, Swing ist nicht Thread sicher). Wie wärs wenn du für das "schöner" Aussehen die paint-Methode überschreibst oder eine eigene Componente baust (die evtl. von JProgressBar erbt!?)?

Ansonsten beschreib dein Prob ma ein wenig genauer X(
 
erstmal danke für die mühe :)

deine Tipps kenn ich schon, aber trotzdem wirst du damit ja nie eine OpenGL grafik hinbekommen.
Ich hätte gerne einen Fortschrittsbalken wie der auch bei 3D spielen zu sehen ist, ganz fein, flüssig und sauber animiert :)
mir ist aber auch klar dass, das nicht mit java geht sondern eher C und OpenGL

P.S. gibt es eigentlich BlitzBasic für Linux?
 
Was verstehst du denn unter "fein sauber animiert"? Mehr als nen balken z. B. zu 30% weiß und 70% blau oder sowas zu malen geht net!

Warum soll das net gehen und für was OpenGL?

Vielleicht hilft es wenn du uns sagst, für was du das eigentlich benötigst
 
also
mit java ist der Fortschrittsbalken recht stockend animiert, bei 3D games läuft der balken ziemlich "flüssig", weil da auch mehr zwischen schritte sind. also jeder pixel ist quasi ein schritt, bei java ist jedes prozent ein schritt (also nur 100 zwischenschritte bis der balken "voll" ist) und das sieht recht "stockend" aus.

ich würde gerne die Graka den Balken berechnen lassen, da die, die nötige power hat und den CPU etwas entlastet (oder?)
 
Also um so nen Balken zu berechnen brauchst net viel Rechenpower ;)

Du könntest die ProgressBar kleiner machen, dann fällt die "Ungenauigkeit" net mehr so auf ;).

Oder aber selber ne Klasse schreiben. Wenn de net viel schnickschnack brauchst is das in 5 - 15 Minuten programmiert.

Darf man fragen was du machst, dass du so eine hohe Präzision benötigst?
 
Original von [starfoxx]
Berechne doch einfach Promille?
Dann wäre das Problem gegessen. Oder?

Äh nein, du setzt bei ner progressbar den Anfangs und den Endwert und gibst dazwischen den "aktuellen Stand" durch. Die ProgressBar berechnet daraus dann wie viel Prozent schon erledigt sind und ändert dementsprechend ihre Anzeige.
 
Original von Gottzilla
Also um so nen Balken zu berechnen brauchst net viel Rechenpower ;)

Du könntest die ProgressBar kleiner machen, dann fällt die "Ungenauigkeit" net mehr so auf ;).

Oder aber selber ne Klasse schreiben. Wenn de net viel schnickschnack brauchst is das in 5 - 15 Minuten programmiert.

Darf man fragen was du machst, dass du so eine hohe Präzision benötigst?

och ich mach nix besonderes, hat mich einfac nur mal interessiert

hab auch ein paar (allerdings in VB) selber gemacht, trotzdem wurde das nie so schön :D
weil Canvas & Co nicht wirklich sauber animieren (sind ja auch nicht dafür gedacht ;) )

vorallem wenn man (nur testweise) den balken auf volle Bildschirmgröße darstellen lässt dann "ruckelt" das ganz schön :(
 
Wer arbeitet auch scho mit Canvas ;)

Schonmal versucht von ner JComponent abzuleiten? Wenn ich ma Zeit und Lust hab mach ich das mal (es sei denn du bist schneller ;))
 
hm, vieleicht hilft das:

da du ja in den codeabschnitten welche einen wert an die progressbar schicken immer
relativ große werte (mal +10, mal +30) angibst, könntest du eine funktion schreiben, welche den wert durch zeitbegrenzte schleifen immer um eins erhöt.

wenn du dann z.b. progress('10'); aufrufst, würde progress(); bis zum besagtem wert (+10) in einser schritten erhöhen, das ganze noch um paar millisekunden zeitverzögert ergibt einen halbwegs flüssigen effekt. stichwort: schleife.
 
für leute die vieleicht mal die gleiche (bekloppte :D ) Idee hatten. hier folgende Link könnte interessant sein.
Java3D
Das ist eine freie Java bibliothek um 3D oder 2D Objekte zu rendern. Ist nicht so leistungsstark wie OpenGL aber zum rumspielen vieleicht gar nicht mal so schlecht.
Allerdings bin ich doch auf OpenGL umgestiegen :D
 
In was für ne Oberfläche willst du das denn einbauen? Benutzt du eine DirectX-Surface? Oder eine OpenGL Ebene? Oder WinAPI? Bei der WinAPI gibts mehrere Progressbars, schau mal in die msdn. Ansonsten, wenn du ne Konsolenapplikation hast wäre doch eine ASCII-Progressbar simpel zu machen.
 
Zurück
Oben