Hallo Zusammen,
wie der Titel ja schon sagt, geht es darum eine Progressbar zum laufen zu bekommen.
Ich habe schon einiges darüber gelesen, aber irgendwie bekomme ich es nicht zum laufen.
Ich habe auf meinem Frontpanel eine Progressbar (jProgressBar1) erstellt.
Ich durchlaufe eine while Schleife, in der Zufallspositionen für einen motorisierten Tisch erzeugt und vom Tisch angefahren werden. Das ganze soll eine bestimmte Zeit laufen. Den Fortschritt der Zeit würde ich gerne über eine Progressbar darstellen.
Die Schleife sieht folgendermaßen aus:
Jetzt muss ja das füttern der Progressbar mit Werten in einen Extra Thread gepackt werden, damit die Progressbar auch wirklich aktualisiert wird.
Das habe ich so versucht:
Funktioniert aber so leider auch nicht, weil ich z.B. nicht weiß, wie ich mit den Variablen umgehen soll.
Die Variablen XPos und YPos z.B. werden im Code vor der Schleife mit Werten gefüttert. Sollen dann aber hier in dem Thread als final deklariert werden, aber das kann ja irgendwie nicht gehen.
Ich komme so gerade echt nicht weiter.
Wäre super, wenn jemand eine Idee dazu hat
wie der Titel ja schon sagt, geht es darum eine Progressbar zum laufen zu bekommen.
Ich habe schon einiges darüber gelesen, aber irgendwie bekomme ich es nicht zum laufen.
Ich habe auf meinem Frontpanel eine Progressbar (jProgressBar1) erstellt.
Ich durchlaufe eine while Schleife, in der Zufallspositionen für einen motorisierten Tisch erzeugt und vom Tisch angefahren werden. Das ganze soll eine bestimmte Zeit laufen. Den Fortschritt der Zeit würde ich gerne über eine Progressbar darstellen.
Die Schleife sieht folgendermaßen aus:
Java:
while(System.currentTimeMillis() < startTime + (Laufzeit * 1000))
{
Xpos = r.nextInt((Math.abs(XCalPos.intValue()) + Math.abs(XRMPos.intValue()))) - Math.abs(XCalPos.intValue());
Ypos = r.nextInt((Math.abs(YCalPos.intValue()) + Math.abs(YRMPos.intValue()))) - Math.abs(YCalPos.intValue());
if((returnfunction = TANGOINST.LSX_MoveAbs(ILSID, Xpos, Ypos, 0, 0, true)) != 0)
throw new Exception("MoveAbs failed");
}
Jetzt muss ja das füttern der Progressbar mit Werten in einen Extra Thread gepackt werden, damit die Progressbar auch wirklich aktualisiert wird.
Das habe ich so versucht:
Java:
try{
new Thread(new Runnable(){
public void run() {
while(System.currentTimeMillis() < startTime + (Laufzeit * 1000))
{
Xpos = r.nextInt((Math.abs(XCalPos.intValue()) + Math.abs(XRMPos.intValue()))) - Math.abs(XCalPos.intValue());
Ypos = r.nextInt((Math.abs(YCalPos.intValue()) + Math.abs(YRMPos.intValue()))) - Math.abs(YCalPos.intValue());
if((returnfunction = TANGOINST.LSX_MoveAbs(ILSID, Xpos, Ypos, 0, 0, true)) != 0)
throw new Exception("MoveAbs failed");
jProgressBar1.setValue((int) ((100 * (startTime + (Laufzeit *1000) ))/System.currentTimeMillis()));
}
}
}).start();
}catch(Exception e){
JOptionPane.showMessageDialog(this, e.getMessage(), "Send String failed", 0);
}
Funktioniert aber so leider auch nicht, weil ich z.B. nicht weiß, wie ich mit den Variablen umgehen soll.
Die Variablen XPos und YPos z.B. werden im Code vor der Schleife mit Werten gefüttert. Sollen dann aber hier in dem Thread als final deklariert werden, aber das kann ja irgendwie nicht gehen.
Ich komme so gerade echt nicht weiter.
Wäre super, wenn jemand eine Idee dazu hat