04. oktober 2003 - 14:03Der er
15 kommentarer og 1 løsning
Filkopierings-proces linie
Jeg skal kopiere et antal filer fra destination_1 til destination_2. Men jeg ville gerne have lavet en proceslinie, som viser hvor langt i kopieringen den er nået. Men hvordan kan man lave det? Et godt eks ville være at foretrække :-)
Men jeg har et med ProgressMonitor (fra tidligere spørgsmål):
package test;
import java.awt.event.*; import javax.swing.*;
public class ProgTest extends JFrame { private ProgressMonitor progressMonitor; private Timer timer; private DummyEncrypter aes = new DummyEncrypter(); public ProgTest() { super(); progressMonitor = new ProgressMonitor(this, "Encryption", "Running", 0, aes.getLength()); progressMonitor.setProgress(0); timer = new Timer(1000, new TimerListener()); timer.start(); (new EncrypterThread(aes)).start(); aes.encrypt(); } class TimerListener implements ActionListener { public void actionPerformed(ActionEvent evt) { progressMonitor.setProgress(aes.getCurrent()); if (aes.isDone()) { timer.stop(); } } } public static void main(String[] args) throws Exception { ProgTest f = new ProgTest(); f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); f.pack(); f.setVisible(true); } }
class DummyEncrypter { private final static int N = 100; private int n = 0; public int getCurrent() { if (n < N) n++; return n; } public int getLength() { return N; } public boolean isDone() { return (n >= N); } public void encrypt() { while (!isDone()) { try { Thread.sleep(100); } catch (InterruptedException e) { } } } }
class EncrypterThread extends Thread { private DummyEncrypter aes; public EncrypterThread(DummyEncrypter aes) { this.aes = aes; } public void run() { aes.encrypt(); } }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.