Hallo!
Ich bin mir nicht ganz sicher, ob ich hier im richtigen Forum bin, aber wenn nicht könnte es ja bitte jemand verschieben.
Also, folgendes Situation.
Ich habe eine Methode die ein Bild filtern soll. Und es soll eine JProgressBar immer anzeigen wieviel Prozent des Bildes bereits bearbeitet wurden.
Dazu habe ich folgendes geschrieben:
Und jetzt das Problem:
Er arbeitet alles gut durch, filtert das Bild, setzt die Values der ProgressBar, schließt den ProgressBarframe am ende, doch er schreibt das "Fertig" nicht und gibt auch das image nicht zurück.
Müsste sich der Thread nicht nach durchlaufen der ganzen for-Schleifen beenden und es würde dann mit dem System.out.println weitergehen?
wie kann ich das Problem lösen?
PS: Ich finde das Ganze irgendwienicht sehr schön gelöst, wie geht das besser?
Danke für alle Antworten!
Ich bin mir nicht ganz sicher, ob ich hier im richtigen Forum bin, aber wenn nicht könnte es ja bitte jemand verschieben.
Also, folgendes Situation.
Ich habe eine Methode die ein Bild filtern soll. Und es soll eine JProgressBar immer anzeigen wieviel Prozent des Bildes bereits bearbeitet wurden.
Dazu habe ich folgendes geschrieben:
Code:
public BufferedImage blurImage() {
final JFrame frame = new JFrame();
frame.setTitle("Bearbeitet...");
frame.setLocationRelativeTo(null);
JProgressBar bar = new JProgressBar();
bar.setStringPainted(true);
frame.getContentPane().add(bar);
frame.pack();
frame.setVisible(true);
final JProgressBar pBar = bar;
Thread t = new Thread(){
int anzahl = 0;
double max = 100.0/(image.getWidth()*image.getHeight());
double prozent = 0;
public void run(){
for (int x = 0; x < image.getWidth(); x++) {
for (int y = 0; y < image.getHeight(); y++) {
anzahl++;
prozent = (max*anzahl);
final double p = prozent;
if (p%10==0){
System.out.println((int)prozent+" geschafft");
pBar.setValue( (int)p );
}
// Hier passiert 'ne menge...
}
}
frame.dispose();
};
};
t.start();
System.out.println("Fertig");
return image;
}
Und jetzt das Problem:
Er arbeitet alles gut durch, filtert das Bild, setzt die Values der ProgressBar, schließt den ProgressBarframe am ende, doch er schreibt das "Fertig" nicht und gibt auch das image nicht zurück.
Müsste sich der Thread nicht nach durchlaufen der ganzen for-Schleifen beenden und es würde dann mit dem System.out.println weitergehen?
wie kann ich das Problem lösen?
PS: Ich finde das Ganze irgendwienicht sehr schön gelöst, wie geht das besser?
Danke für alle Antworten!