M
mr1st
Gast
Hallo.
Ich arbeite zZ an einem Bildbetrachtungsprogramm, in dem man alle Bilder in einem Ordner nach der Reihe anschauen kann (ähnlich wie das Teil in Windows XP). Man kann einen Zoom einstellen, man wird eine automatische Diashow starten können usw. Soweit zu meinem Projekt.
Nun mein Problem:
Wenn die Bilder etwas größer (hohe Auflösung und/oder große Dateigröße) sind, dauert das laden und die Größenänderung des Bildes schon recht lange. Nun möchte ich eben eine ProgressBar einbauen, bzw. 2 ProgressBars, eine für's laden des Bildes und eine für die Größenänderung.
Weiters möchte ich nachfragen, ob meine Art, die Bilder anzuzeigen, gut ist, oder ob es bessere/schnellere/einfachere Varianten gibt. Das Bild soll letztendlich auf einem JScrollPane angezeigt werden.
zZ habe ich die Anzeige so gelöst: JScrollPane <- JPanel <- JLabel <- ImageIcon
Hier noch ein Codeschnipsel:
Ein weiteres nettes Feature wäre, wenn man den Lade- bzw. Änderungsvorgang abbrechen könnte, wenn man z.B. versehentlich ein Bild mit der Auflösung 2... x 1... auf 400% vergrößert.
Ich arbeite zZ an einem Bildbetrachtungsprogramm, in dem man alle Bilder in einem Ordner nach der Reihe anschauen kann (ähnlich wie das Teil in Windows XP). Man kann einen Zoom einstellen, man wird eine automatische Diashow starten können usw. Soweit zu meinem Projekt.
Nun mein Problem:
Wenn die Bilder etwas größer (hohe Auflösung und/oder große Dateigröße) sind, dauert das laden und die Größenänderung des Bildes schon recht lange. Nun möchte ich eben eine ProgressBar einbauen, bzw. 2 ProgressBars, eine für's laden des Bildes und eine für die Größenänderung.
Weiters möchte ich nachfragen, ob meine Art, die Bilder anzuzeigen, gut ist, oder ob es bessere/schnellere/einfachere Varianten gibt. Das Bild soll letztendlich auf einem JScrollPane angezeigt werden.
zZ habe ich die Anzeige so gelöst: JScrollPane <- JPanel <- JLabel <- ImageIcon
Hier noch ein Codeschnipsel:
Code:
private void loadPicture(String filepath)
{ //...
ImageIcon img = new ImageIcon(filepath);
//...
img = scale(img);
imageLabel.setIcon(img);
//...
}
private ImageIcon scale(ImageIcon img)
{ // ... Größe berechnen usw
img.setImage(img.getImage().getScaledInstance(imgWidth,imgHeight,Image.SCALE_FAST));
return img;
}
Ein weiteres nettes Feature wäre, wenn man den Lade- bzw. Änderungsvorgang abbrechen könnte, wenn man z.B. versehentlich ein Bild mit der Auflösung 2... x 1... auf 400% vergrößert.