I want to show a progress bar in my swing application that will close the selected file. For this process, I want to show a progress bar during processing. It can be in JOptionPane or a given panel as a parameter for utility.
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new File("."));
chooser.setFileFilter(new javax.swing.filechooser.FileFilter() {
public boolean accept(File f) {
return f.getName().toLowerCase().endsWith(".txt")
|| f.isDirectory();
}
public String getDescription() {
return "GIF Images";
}
});
String source ="";
int r = chooser.showOpenDialog(new JFrame());
if (r == JFileChooser.APPROVE_OPTION) {
source = chooser.getSelectedFile().getPath();
File file = chooser.getSelectedFile();
try {
String target = "upload/data-1.zip";
ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(target));
FileInputStream fis = new FileInputStream(file);
zos.putNextEntry(new ZipEntry(file.getName()));
int size = 0;
byte[] buffer = new byte[1024];
JProgressBar pb = new JProgressBar();
pb.setStringPainted(true);
pb.setIndeterminate(true);
JPanel panel = new JPanel();
panel.add(pb);
JOptionPane.showInputDialog(panel);
while ((size = fis.read(buffer, 0, buffer.length)) > 0) {
zos.write(buffer, 0, size);
pb.setValue(size);
pb.repaint();
if (size >= file.size) {
panel.dispose();
}
<<HERE I TRIED TO GIVE PROGRESS ABR VALUE BUT NOT SUCCEDED>>
}
zos.closeEntry();
fis.close();
zos.close();
System.out.println("finished");
} catch (IOException e) {
e.printStackTrace();
}
}
itro source
share