[SWT] - ProgressBar, Prozentzahlen live anzeigen geht nicht

Status
Nicht offen für weitere Antworten.

pocketom

Bekanntes Mitglied
Hi,

ich möchte den Fortschritt in meinem Progressbar auch in Prozent anzeigen lassen, also quasi über den PBar drübergelegt so dass es so aussieht als ob die Prozente eingebettet währen. Geht das? kennt irgendwer eine agewandelte Klasse von ProgressBar die das bietet? ich selbst krieg es nicht hin, mein Label mit dem ich die Prozentzahlen live hochzählen will zeigt erst ganz zum Schluss etwas an (100%), die Schritte dazwischen ignoriert es, während der Ladebalken selbst gut funktioniert???
 

pocketom

Bekanntes Mitglied
Gute Frage :bahnhof:

Im Moment krieg ich es nichtmal hin neben meinem Progressbar ein label anzeigen zu lassen das die Prozent parallel zum Fortschrittsbalken hochzählt.


Hier meine Progressbarklasse

Code:
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.ProgressBar;


public class GUI_ProgressBar {

	private static Composite 		pbarholder;
	private static ProgressBar 		pbar;
	private static Label			description;
	private static Label			percent;
	
	
	GUI_ProgressBar(Composite parent)
	{
		// composite holding the prograssbar and its labels...
		pbarholder = new Composite(parent, SWT.RIGHT);				
		
		GridLayout pbarlayout = new GridLayout();
		pbarlayout.numColumns = 3;
		pbarholder.setLayout(pbarlayout);
		
		GridData pbargriddata = new GridData(GridData.FILL_HORIZONTAL);
		pbargriddata.horizontalAlignment = SWT.RIGHT;
		pbarholder.setLayoutData(pbargriddata);		
		
		description = new Label(pbarholder, SWT.NULL);
		description.setText("Progress: ");
				
		pbar = new ProgressBar(pbarholder,SWT.HORIZONTAL);
		pbar.setMinimum(0);
		pbar.setMaximum(100);
		
		percent = new Label(pbarholder, SWT.NULL);
		percent.setText("");
	}
	
	// actualize progressbar (0-100%)
	public static void setPercent(int p)
	{
		pbar.setSelection(p);		
		percent.setText(String.valueOf(p)+" %");
	}
	// set description text;
	public static void setDescription(String text)
	{		
		description.setText(text);
		System.out.println("TEXT");
	}
	// return pbars display
	public Display getDisplay()
	{
		return pbar.getDisplay();
	}
}



Ansprechen lässt es sich nun ganz einfach:

Code:
GUI_Progressbar pbar = new GUI_ProgressBar(parent);

pbar.getDisplay().syncExec(new Runnable() {
	public void run() {
		pbar.setPercent(value);  // 0 - 100							
	}
});


Dummerweise aktualisiert sich die Prozentanzeige (das Label "percent") aber nicht laufend, während der Progressbar einwandfrei live aktualisiert. Nachdem der Vorgan beendet ist und der Progressbar 100% erreicht hat, steht dann auch plötzlich 100% dahinter... Sowohl der Progressbar als auch das Prozentlabel werden in ein und der selben Funktion akualisiert (void setPercent(int p)).Das ist doch vollkommen unlogisch oder ???:L
 

pocketom

Bekanntes Mitglied
Weiss wirklich niemand was ich falschmache? Ich hänge seit Stunden nur an diesem Sch**ssproblem und dreh gleich durch. Ich check einfach nicht wieso der ProgressBar sich aktualisiert und das Label 0,0. Bin ich zu dämlich?
 
G

Guest

Gast
Sorry, ist natürlich Schmarrn, was ich da erzähle. Ich meinte nicht den Layout-Manager, sondern das LookAndFeel.:oops:
Ich weis nicht, gibt doch bestimmt welche, die die Prozentzahl direkt in der Bar anzeigen, oder irgendeine Methode um das zu setzen. Oder muss das im Label geschehen?

Was bei deinem Prg allerdings falsch läuft kann ich dir auch nicht sagen. ???:L
Scheint was mit den Threads zutun zu haben. Da bin ich aber der absolut falsche Mann!
 

pocketom

Bekanntes Mitglied
Also so wie ich es haben wollte ist es halt als Notlösung gedacht gewesen indem ich halt die Prozentanzeige selbst daneben stricken wollte. Sehr unlogisch halt das der ProgressBar sich in Echtzeit parallel aktualisiert, mein Label jedoch erst am Schluss seinen Endwert anzeigt. Nehme auch mal schwer an das es was mit Threads zu tun hat, ich komm aber einfach ned drauf... :?
 
G

Guest

Gast
Woher bekommt value denn seinen Wertß
Läuft die Progressbar denn wirklich richtig?
Hast dus schon mit Swing probiert (weis gar nicht, ob man dass LookAndFeel bei SWT ändern kann :? )?

Ich glaube, man braucht hier einfach mehr Infos.
Aber mit den Threads, keine Ahnung.
Wie und wo wird der denn gestartet?
 
K

Karpe

Gast
Benutze:

progressBar.setStringPainted(true);

damit wird die Prozentzahl auotmatisch angezeigt.
 
G

Guest

Gast
Hallo again,

in deinem Fall trage bitte direkt hinter:

pbar.setMaximum(100);

pbar.setStringPainted(true);

ein.

Gruß, Karpe
 

pocketom

Bekanntes Mitglied
Hey danke, klasse Tip! Auf jeden Fall steig ich in der nächsten Version auf Swing um, auch wenn das leider ne Menge Arbeit wird, denn die GUI ist schon nicht mehr so ganz klein. Länger möcht ich mir das SWT aber echt nimmer antun.
 

pocketom

Bekanntes Mitglied
hi,

grade versucht es zu implementieren, vermute mal dein Tip bezieht sich auf Swing oder? Der Progressbar von SWT hat nämlich keine Methode namens setStringPainted().... SWT k*tzt mich mal echt langsam voll an.... :x
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Progressbar Farbe AWT, Swing, JavaFX & SWT 6
T Swing Reload JPanel + darin liegende ProgressBar AWT, Swing, JavaFX & SWT 9
A Swing ProgressBar über 2 parallel laufende Threads AWT, Swing, JavaFX & SWT 2
P JavaFx - Progressbar - Füllen mittels mehreren Tasks AWT, Swing, JavaFX & SWT 0
Bluedaishi JavaFX ProgressBar AWT, Swing, JavaFX & SWT 10
T Starten des Programms mit dem Progressbar AWT, Swing, JavaFX & SWT 2
L Progressbar Laufzeitveränderung AWT, Swing, JavaFX & SWT 4
1 Swing Progressbar benutzen um Fortschritt einer Methode anzuzeigen AWT, Swing, JavaFX & SWT 4
B JavaFX Textfields: Fortschritt als ProgressBar und Progressindicator AWT, Swing, JavaFX & SWT 5
MR._FIRE_Flower progressBar in ein bestehendes Programm einbauen AWT, Swing, JavaFX & SWT 3
M Wie binde ich eine JavaFX ProgressBar an eine Datei Übertragung? AWT, Swing, JavaFX & SWT 2
Z Swing Swing und die Progressbar AWT, Swing, JavaFX & SWT 1
I JavaFX Im Controller die ProgressBar mit Task updaten AWT, Swing, JavaFX & SWT 6
R LookAndFeel Wie kann man die Textfarbe der Nimbus ProgressBar nach Füllstand ändern? AWT, Swing, JavaFX & SWT 2
M JavaFX Progressbar bar und track Komponente zur Laufzeit ändern AWT, Swing, JavaFX & SWT 2
Z ProgressBar in Eclipse mit Wizard page? AWT, Swing, JavaFX & SWT 1
W Swing ProgressBar update AWT, Swing, JavaFX & SWT 4
A JavaFX Eine Task mit einer ProgressBar verbinden AWT, Swing, JavaFX & SWT 0
H Nimbus ProgressBar Colors AWT, Swing, JavaFX & SWT 9
P Swing Die ProgressBar wird nicht angezeigt AWT, Swing, JavaFX & SWT 5
B SWT Progressbar mit Textoverlay? AWT, Swing, JavaFX & SWT 3
M ProgressBar in ActionListener AWT, Swing, JavaFX & SWT 4
T Prozessstatus in Progressbar anzeigen AWT, Swing, JavaFX & SWT 5
J Swing Progressbar aktualisiert sich nicht AWT, Swing, JavaFX & SWT 17
V Persistentes Objekt laden Progressbar AWT, Swing, JavaFX & SWT 7
V Swing Progressbar Problem AWT, Swing, JavaFX & SWT 14
B ProgressBar während Berechnung AWT, Swing, JavaFX & SWT 4
Tobse LookAndFeel [Windows7] Nativ aussehnde ProgressBar AWT, Swing, JavaFX & SWT 13
J Progressbar mit einfacher Funktion AWT, Swing, JavaFX & SWT 6
D Progressbar AWT, Swing, JavaFX & SWT 5
H Zeile in DefaultTableModel hinzufügen, ProgressBar AWT, Swing, JavaFX & SWT 4
S Upload Progressbar AWT, Swing, JavaFX & SWT 3
S Dateien kopieren mit ProgressBar AWT, Swing, JavaFX & SWT 6
S Swing ProgressBar AWT, Swing, JavaFX & SWT 3
S SWT ProgressBar: Value/Selection anzeigen AWT, Swing, JavaFX & SWT 4
D SWT JFace Wizard Progressbar AWT, Swing, JavaFX & SWT 4
S ProgressBar newRunnable (schon wieder!) AWT, Swing, JavaFX & SWT 9
ModellbahnerTT Progressbar anzeigen AWT, Swing, JavaFX & SWT 5
J Progressbar aktualisierung nach file übergabe AWT, Swing, JavaFX & SWT 7
P Progressbar in java AWT, Swing, JavaFX & SWT 3
K Frage zu ProgressBar, SwingWorker etc. AWT, Swing, JavaFX & SWT 4
V ProgressBar AWT, Swing, JavaFX & SWT 5
D Suche verticale Progressbar AWT, Swing, JavaFX & SWT 2
M Bug; Swing-Worker, Progressbar und Mouse AWT, Swing, JavaFX & SWT 22
P JTable sortiert ProgressBar nicht AWT, Swing, JavaFX & SWT 8
L Button ändert eigenes Bild und Progressbar-Value nicht AWT, Swing, JavaFX & SWT 6
B Eine Alternative zur Steuerung einer ProgressBar? AWT, Swing, JavaFX & SWT 5
N ProgressBar --> brauche Hilfe AWT, Swing, JavaFX & SWT 4
G Progressbar aktualisiert sich nicht (vernünftig). WIESO? AWT, Swing, JavaFX & SWT 2
S Anzeige einer Progressbar. AWT, Swing, JavaFX & SWT 3
M Bild laden + ProgressBar AWT, Swing, JavaFX & SWT 2
C Problem mit ProgressBar AWT, Swing, JavaFX & SWT 4
thE_29 Problem mit ProgressBar AWT, Swing, JavaFX & SWT 2
M ProgressBar in einem Thread? AWT, Swing, JavaFX & SWT 4
C ProgressBar AWT, Swing, JavaFX & SWT 4
Farbtopf Live update JFreeChart AWT, Swing, JavaFX & SWT 3
M Swing JTextField live validieren und Rahmenfarbe ändern AWT, Swing, JavaFX & SWT 3
S Live Ticker "Endlosschleife" AWT, Swing, JavaFX & SWT 10
L JTable aus MySQL DB updaten - Live AWT, Swing, JavaFX & SWT 7
E Swing JFormattedTextField Live Validierung AWT, Swing, JavaFX & SWT 4
C Live Suche mit TextFeld AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben