Hallo,
ich schreibe gerade ein Programm, in welchem ich nacheinander mehrere Bilder skaliere. Zur Kontrolle habe ich einenProgressBar eingerichtet. Dieser bleibt aber während der ganzen Zeit unsichtbar. Hier ein lauffähiger Ausschnitt aus dem Programm:
Kann mir jemand weiterhelfen ?
ich schreibe gerade ein Programm, in welchem ich nacheinander mehrere Bilder skaliere. Zur Kontrolle habe ich einenProgressBar eingerichtet. Dieser bleibt aber während der ganzen Zeit unsichtbar. Hier ein lauffähiger Ausschnitt aus dem Programm:
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.filechooser.*;
import java.io.*;
import java.awt.image.*;
import javax.imageio.*;
public class Bilderseite extends JFrame {
private JButton btnLos=new JButton("Los");
private JProgressBar pB=new JProgressBar(0,4);
public Bilderseite() {
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setBounds(100,100,600,400);
btnLos.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
bildHinzu();
}
});
Box bX=new Box (BoxLayout.Y_AXIS);
bX.add(btnLos);
bX.add(pB);
add(bX);
}
private void bildHinzu() {
JFileChooser fc=new JFileChooser();
fc.setDialogType(JFileChooser.OPEN_DIALOG);
int ergebnis=fc.showOpenDialog(this);
if(ergebnis == JFileChooser.APPROVE_OPTION) {
File quelle=fc.getSelectedFile();
String bildQuelle=quelle.toString();
String bildZiel=bildQuelle.substring(0,bildQuelle.length()-4)+"SKAL.jpg";
pB.setValue(1);
skalieren(bildQuelle, bildZiel, 1000,600);
pB.setValue(2);
skalieren(bildQuelle, bildZiel, 1000,600);
pB.setValue(3);
skalieren(bildQuelle, bildZiel, 1000,600);
//...
}
}
public void skalieren(String q, String z, int b, int h) {
String quelle=q;
String ziel=z;
int breite=b;
int hoehe=h;
BufferedImage srcImage=null, destImage=null;
try {
srcImage = ImageIO.read(new File(quelle));
} catch (IOException e) {
e.printStackTrace();
}
Image image = srcImage.getScaledInstance(breite, hoehe,Image.SCALE_SMOOTH);
destImage = new BufferedImage(breite, hoehe, BufferedImage.TYPE_INT_RGB);
Graphics g = destImage.createGraphics();
g.drawImage(image, 0, 0, null);
g.dispose();
try {
ImageIO.write(destImage, "jpg", new File(ziel));
} catch (IOException ie) {
ie.printStackTrace();
}
}
public static void main(String[] args) {
Bilderseite bs=new Bilderseite();
bs.setVisible(true);
}
}//Ende Klasse Bilderseite
Kann mir jemand weiterhelfen ?