Im making a backup program, and I want everything that i have the program backing up displayed on a JTextArea. well, it works, but only after the program is finished with the backup. How do i fix this? The code i have running this is here:
backup method
public void startBackup() throws Exception {
    // txtarea is the JTextArea
    Panel.txtArea.append("Starting Backup...\n");
    for (int i = 0; i < al.size(); i++) {
        //al is an ArrayList that holds all of the backup assignments selected
        // from the JFileChooser
        File file = new File((String) al.get(i));
        File directory = new File(dir);
        CopyFolder.copyFolder(file, directory);
            }
     }
Copy Folder class:
public class CopyFolder {
public static void copyFolder(File src, File dest) throws IOException {
    if (src.isDirectory()) {
        // if directory not exists, create it
        if (!dest.exists()) {
            dest.mkdir();
            Panel.txtArea.append("Folder " + src.getName()
                    + " was created\n");
        }
        // list all the directory contents
        String files[] = src.list();
        for (String file : files) {
            // construct the src and dest file structure
            File srcFile = new File(src, file);
            File destFile = new File(dest, file);
            // recursive copy
            copyFolder(srcFile, destFile);
        }
    } else {
        try {
            CopyFile.copyFile(src, dest);
        } catch (Exception e) {
        }
    }
}
    }
CopyFile class
public class CopyFile {
public static void copyFile(File src, File dest) throws Exception {
    // if file, then copy it
    // Use bytes stream to support all file types
    InputStream in = new FileInputStream(src);
    OutputStream out = new FileOutputStream(dest);
    byte[] buffer = new byte[1024];
    int length;
    // copy the file content in bytes
    while ((length = in.read(buffer)) > 0) {
        out.write(buffer, 0, length);
    }
    in.close();
    out.close();
    // System.out.println("File copied from " + src + " to " + dest);
    Panel.txtArea.append("File copied " + src.getName() + "\n");
}
    }
Thanks for the help in advance, and let me know of any assistance i can give. I did a google search on this, and it does seem to be a big problem, but i just cant think of how to fix it. Oh, and please dont downvote this just because it doesnt apply to you, its very aggravating. Thanks in advance again!
EDIT: This is what i got:
public class test extends SwingWorker<Void, String> {
String txt;
JTextArea txtArea = null;
public test(JTextArea txtArea, String str) {
    txt = str;
    this.txtArea = txtArea;
}
protected Void doInBackground() throws Exception {
    return null;
}
protected void process(String str) {
    txtArea.append(str);
}
protected void getString() {
    publish(txt);
}
    }