3

私のプログラムは、ファイルシステムのディレクトリからファイルを読み取ります。0最小値が設定され、最大値がn(特定のディレクトリ内のファイル数)に設定された進行状況バーがあります。その上には、反復の進行状況を表示するテキストがあります...1/100, 2/100, 3/100など。

私が抱えている問題は、表示されるテキストが進行状況バーと同期していないことです。プログレス バーは70%、テキストが と表示されたあたりになります100/100。誰でもこれで私を助けることができますか?

pb1.setMinimum(0);
pb1.setMaximum(files2.size());

shell.getDisplay().asyncExec(new Runnable() {
    public void run() {
        if (pb1.isDisposed()) return;
        for(final File f : files2) {
            pb1.setSelection(pb1.getSelection() + 1);
            dialogShell.setText("Loading" + pb1.getSelection() +
                "/"+pb1.getMaximum());

        }
    }
});
4

1 に答える 1

1

次のようにスレッドで「カウンター」を使用してみてください

pb1.setMinimum(0);
pb1.setMaximum(files2.size());

shell.getDisplay().asyncExec(new Runnable() {
    public void run() {
        int n = pb1.getMinimum();
        int d = pb1.getMaximum();

        if (pb1.isDisposed()) { return; }

        for(final File f:files2){
            pb1.setSelection(n);
            dialogShell.setText("Loading "+n+"/"+d);
            n++;
        }
    }
});
于 2012-08-01T00:02:54.420 に答える