Hirdetés

Új hozzászólás Aktív témák

  • n00n

    őstag

    Szeretnék írni egy fájlmásolást progress barral, viszont nem jön össze. Mikor meghívom a lent látható fileMasolas metódust szépen megjelenik a JGrame, viszont a belseje "átlátszó" és csak azután jelenik meg, hogy végzett az utána következő fájl másolással. Valakinek ötlet, hogy mi nem jó?

    private void fileMasolas() {

    JFrame frame = new JFrame("Mentés másolása folyamatban");

    pb = new JProgressBar(0, 100);
    pb.setValue(0);
    pb.setStringPainted(true);

    JPanel panel = new JPanel();
    panel.add(pb);

    panel.setBorder(BorderFactory.createEmptyBorder(40, 75, 40, 75));
    frame.setContentPane(panel);
    frame.pack();
    frame.setLocationRelativeTo(null);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);

    File filein = new File("D:/adat.db");
    File fileout = new File("D:/adat_new.db");

    FileInputStream fin = null;
    FileOutputStream fout = null;
    long length = filein.length();
    long counter = 0;
    int r = 0;
    byte[] b = new byte[1024];
    try {
    fin = new FileInputStream(filein);
    fout = new FileOutputStream(fileout);
    while ((r = fin.read(b)) != -1) {
    counter += r;
    int bar = (int) (100.0 * counter / length);
    pb.setValue(bar);
    fout.write(b, 0, r);
    }
    } catch (Exception e) {
    System.out.println("Hiba");
    }
    }

Új hozzászólás Aktív témák