JProgressbar probleme

javama

Erfahrenes Mitglied
Hallo,

ich wollte nach Button Klick in der actionPerformedMethode eine Fortschrittsanzeige mittels einer JProgressBar
realisieren.

in der Art:

actionPerformed() {

1. Fortschrittsanzeige (unbestimmte) erzeugen in Panel A
2. Methodenaufruf, der eine gewisse Zeit benötigt
3. Fortschrittsanzeige aus Panel A entfernen wenn Methode ausgeführt wird.
}

hat jemand eine Idee?
danke im voraus
 

Akeshihiro

Erfahrenes Mitglied
Ich will ja nix sagen, aber ich versteh das Problem dabei nicht ... Du hast sogar die Schritte genannt, die gemacht werden müssen, das musst du einfach nur umsetzen. Willst du ein Beispiel sehen oder was?
 

javama

Erfahrenes Mitglied
mein problem ist dass erst wenn die Metohde (myMethodExecute()) ausgeführt wird , fängt dann progressbar an zu bewegen

ich muss einen separten Thread programmieren

hat jemand eine Idee?

Java:
if(arg0.getSource() == button)
{
   if(a.size() > 0)
   {
       int erg = JOptionPane.showConfirmDialog(this, "Wollen Sie die zeilen erstellen?", "Hinweis",        JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);
       if(erg == JOptionPane.YES_OPTION)
          {
		   	    	
progressBar.setIndeterminate(true);
   // benötigte zeit unbekannt: wie lange die Methode braucht
	myMethodExecute();  					
					
										
							   	      }
			}
else
	JOptionPane.showMessageDialog(this, "Die Tabelle ist leer!");
 
Zuletzt bearbeitet:

Akeshihiro

Erfahrenes Mitglied
Achso, da liegt also das Problem. Naja, man muss aber auch dazu sagen, dass niemand erahnen kann, wie weit deine Methode ist. Du wirst also in deiner Methode an bestimmten Punkten die Progressbar füttern müssen. Oder du hast eine zentral gelegene Variable, die durch die Methode gesetzt wird und ein Timer schaut in regelmäßigen Abständen nach und aktualisiert die Progressbar.
 

Akeshihiro

Erfahrenes Mitglied
Ja dann kannste das vergessen ... Ich kenne aber auch nicht dein Projekt und auch nicht die Struktur, daher kann ich dazu auch nix sagen. Man könnte pfuschen, aber ich bin der letzte, der zu sowas greift. Es gibt eigentlich immer Möglichkeiten, sauber zu arbeiten.

Wenn die eine Methode wirklich die einzige aufgerufene Methode ist, dann macht eine Progressbar auch schon eigentlich kein Sinn mehr. Da kannste im Grunde auch einfach ne Text ala Status oder sowas hinterlegen oder ne MessageBox anzeigen mit dem Inhalt "XYZ wird ausgeführt, kann ein paar Minuten dauern ...". Das Problem ist, dass wenn du an keine einzelnen Zustandswerte kommst, die Progressbar eigentlich nur 0% und 100% anzeigen kann und das ist genauso sinnvoll, wie wenn sie gar nicht vorhanden wär.
 

javama

Erfahrenes Mitglied
ja du hast recht, ich konnte schon die Methode so umändern, dass ich mein ProgressBar mitteilen kann wie weit ist die methode (das wäre dann: Determinate Progress Bars). Aber ich wollte dann nur mit Indeterminate Mode arbeiten sodass mein ProgressBar sich Hin und Her bewegt bis die methode fertig ist.
das war mein ziel!